일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 모의해킹
- Los
- CTF
- Python
- Error based sql injection
- blind sql injection
- 로그인페이지
- 로그인
- lord of sqli
- 쿠키
- union sql injection
- 과제
- 게시판 만들기
- JS
- php
- 세션
- sql injection
- 웹개발
- Cross Site Request Forgery
- file upload
- MySQL
- css
- csrf
- cookie 탈취
- cors
- JWT
- sql injection point
- XSS
- Reflected Xss
- lord of sql injection
- Today
- Total
목록php (26)
Almon Dev
중복확인 users.txt로 회원가입 페이지를 구현할 때 만들어둔 아이디, 닉네임 중복확인을 mysql을 이용하도록 수정했습니다 아이디 중복확인 check_userId.php수정 전 !$duplication]);?> 수정 후num_rows > 0) { $duplication = true; } header("Content-Type: apllication/json"); echo json_encode(['pass' => !$duplication]);?> duplicate_check.js idInput.addEventListener('input', () => { const userId = idInput.value; fetch('/api/users/check_userId...

마이페이지 만들기 구상하기처음에는 따로 마이페이지를 만들고자 했으나 프로필 페이지의 아랫부분이 많이 남아서db를 통해 데이터를 가져온 뒤 프로필페이지의 아랫부분에 출력하기로 생각을 바꾸었습니다.HTML 수정 login_successful.php수정 전 구독자 0명 글쓰기 마이페이지 로그아웃', $nickname); ?> 수정 후 ..

로그아웃 기능 로그인 기능을 만들었지만 로그아웃 기능까지 만들려고 하니 수정이 필요해졌습니다.일단 mysql에 로그인 온/오프를 기록하기 위한 Boolean 타입 컬럼(열)을 하나 만들었습니다.그리고 로그인 시 1을 기록하고 로그아웃시 0을 기록하도록 변경하였습니다. login 컬럼 추가alter table users add login boolean not null;alter table로 테이블의 열을 추가, 제거 이름변경 등 속성을 변경할 수 있습니다.alter table [테이블명] add [컬럼명] [타입 및 속성];으로 컬럼을 추가해 줍니다. login_proc2.php 변경 수정전"; echo ""; echo ""; echo ""; exit; ..

php는 기본적으로 보안을 위해서 에러를 숨기기 때문에 에러 로그를 확인하기 힘듭니다.개발 과정에서 에러를 확인하는 방법에는1. echo "";를 이용해서 중간중간에 코드가 잘 작동되나 점검하는2. 설정에서 에러로그를 페이지에 출력하도록 변경하는 것이 있습니다.저는 2번의 설정을 통해 에러로그를 페이지에 출력하도록 변경할 것입니다. 1. 설정 파일 찾기 우선 php의 설정을 하려면 설정 파일의 위치를 알아야 합니다.설정파일의 위치를 찾는 방법도 여러 가지가 있습니다.1.find 명령어로 찾기sudo find / -name php.ini 2>/dev/null설정파일의 이름을 알고 있다면 find명령어를 이용해서 찾을 수 있습니다 2.php 명령어로 찾기(cli php)php --iniphp --ini를 하..

오늘은 드디어 mysql을 이용해서 users.txt를 대체할 겁니다.mysql을 사용하기 위해 여기저기서 사용될db에 접속해서 sql문을 실행하는 동작을 함수로 만들어서 mysql.php에 저장했습니다. mysql.php $conn = mysqli_connect($host, $id, $password, $dbname);conn이라는 변수에 db에 접속한 mysqli 객체를 저장합니다. 실패 시에는 false가 저장됩니다. if (!$conn) { die("mysql 연결 에러 : ". mysqli_connect_error());}if (!$result) { die("쿼리문 에러 : " . mysqli_error($conn));}이 부분은 mysql 커넥션과 쿼리문의 응답이 제대로 왔는지 검사..

오늘 한 일오늘은 회원가입 기능을 추가했습니다.회원가입 페이지인 sign_up.php를 만들어서 sign_up_proc.php에 폼 데이터를 POST로 전송한 뒤users.txt에 id : password : nickname으로 추가하는 형태로 시작했습니다. login2.php Almond 로그인에 실패하셨습니다.'; } ?> 로그인 아이디 찾기 비밀번호 찾기 회원가입 아이..

APM(Apchae PHP Mysql) 환경을 세팅했을 때 Index.php와 같이 php파일을 요청하면php가 실행돼서 페이지가 보이는 게 아니라 그냥 다운로드가 되어버리는 경우가 있다고 들었습니다. 해결방법 요약php -v : php 버전 확인sudo apt updatesudo apt install libapache2-mod-php 원인Apache가 php를 실행하지 못함 해결 방법Apache 2.4 기준이 방법은 Apache2.4를 기준으로 작성되었습니다.아파치 버전 확인은 apachectl -v 혹은 httpd -v 가있습니다.아파치의 설정파일인 apache2.conf 파일을 열어봅니다./etc/apache2/apache2.conf IncludeOptional mods-enabled/*.loa..

과제는 끝냈다고 생각했으나 만들고 보니 추가할 점이 많이 보였습니다.오늘 추가한 점은 id : admin passwd : admin1234를 if문으로 하드코딩 하는 게 아니라users.txt라는 파일에 저장한 뒤 해당 파일을 읽어와서 로그인하는 과정을 추가했습니다.users.txtadmin:admin1234:Almond Devtest:test1234:tester' : '을 이용해서 문자열을 스플릿 하기 위해서 id:passwd:nickname으로 저장했습니다.login_proc2.php "; $user_split = explode(":", $user); // printf("id: %s pass: %s nickname: %s ", ...$user_split); ..