일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 웹 해킹
- 증적 사진
- 문제 풀이
- 로그인
- 웹개발
- cookie 탈취
- MySQL
- file upload
- 웹 개발
- Python
- 보안 패치
- CTF
- sql injection point
- JS
- 게시판 만들기
- csrf
- blind sql injection
- lord of sql injection
- 과제
- 보고서
- union sql injection
- 로그인페이지
- 모의해킹
- php
- XSS
- sql injection
- Los
- 세션
- FridaLab
- Error based sql injection
- Today
- Total
목록전체 글 (127)
Almon Dev

로그인 로직 구현하기 사전작업비밀번호에 해쉬를 저장하기 위해서 varchar(512)로 최대 512바이트까지 저장하도록 변경했습니다.alter table users modify column password varchar(512) not null; 식별 - 인증 동시sql문에서 식별과 인증을 동시에 하는 로직입니다.login1_proc.php $sql = "select nickname from users where id='$id' and password='$pass';";이 코드처럼 where과 and를 이용해 식별과 인증을 동시에 처리합니다. 식별 - 인증 분리login2_proc.php $sql = "select nickname,password from users where id='$id..

JWT로 로그인 구현하기 php에서 jwt를 사용하기 위해서는 firebase/php-jwt라는 패키지를 사용해야 합니다.php-jwt를 설치하기 위해서는 php의 패키지 관리 툴인 composer를 사용해야 합니다.composer 설치하기php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } el..
JWTJWT(JSON Web Token)은 인증에 필요한 모든 정보(아이디, 이메일 등)를 암호화해서 JSON 토큰으로 만든 것을 말합니다. JSONJSON은 JavaScript Object Notation의 약자로 자바스크립트의 객체를 표현하는 방식을 흉내 내어 웹에서 정보를 주고받을 때 자주 사용하는 경량 데이터 형식입니다.JSON의 특징키와 값으로 이루어져 있습니다.문자열 값을 " 큰 따옴표로 묶어야 합니다.객체, 배열, 문자열, 숫자, true, false, null만 포함할 수 있습니다. JWT 구조JWT는 헤더(Header), 페이로드(Payload), 서명(Signature) 세 가지로 이루어져 있습니다.==> 헤더 . 페이로드 . 서명의 구조로 만들어집니다. 헤더(Header)토큰에 사용된..

세션(Session)으로 로그인 구현하기 인덱스 페이지index.php수정 전 수정 후 session_start();사용자의 쿠키에 세션 ID가 있는지 확인하고, 없으면 세션 ID를 생성해 사용자의 쿠키에 저장합니다.세션 ID가 있는 경우 세션 ID와 일치하는 파일을 찾아서 내용을 읽어 $_SESSION 배열에 저장합니다. if (isset($_SESSION["user_id"])) { header("Location: login_successful.php"); exit;세션에 user_id가 있는 경우 프로필 페이지로 이동합니다. }else { header("Location: login2.php"); exit;세션에 user_id가 없는 경우 로그인 페이지로 이동합니다. 세션 파일..

쿠키(Cookie)로 로그인 구현하기 인덱스 페이지index.php if (isset($_COOKIE['user_id'])){isset() 함수를 이용해서 요청에 같이 온 쿠키 중에 user_id라는 이름의 값이 세팅되어 있는지 확인합니다. header("Location: login_successful.php"); exit;쿠키가 존재한다면 프로필 페이지로 리다이렉션 시킵니다. exit를 이용해서 코드를 바로 종료합니다. }else { header("Location: login2.php");}만일 쿠키가 없다면 로그인 페이지로 리다이렉션 시킵니다.로그인 페이지login2.php ..
로그인 식별과 인증식별 : 많은 사용자들 중에 한 사람을 구분하는 것입니다=> 외부에 노출되어도 크게 지장이 없습니다.ex) 아이디, 이메일, 휴대폰 번호인증 : 사용자가 제공한 식별정보가 사실인지 확인하는 것입니다=> 외부에 노출이 되어서는 안 됩니다.ex) 비밀번호, 지문, 얼굴인식고유 식별 정보 : 개인마다 하나씩 부여되는 고유한 식별 정보입니다.=> 식별 정보지만 외부에 노출되어서는 안 됩니다.ex) 주민등록번호, 여권번호, 운전면허번호 로그인 로직식별 - 인증 동시 : sql 쿼리문에서 조건문을 이용해 식별과 인증을 한 번에 처리합니다.ex) select * from users where id='admin' and password='admin1234';식별 - 인증 분리 : sql 쿼리문으로 식..

쿠키(Cookie)쿠키는 유저의 정보를 브라우저에 저장하기 위해서 사용되는 파일입니다.브라우저가 종료되어도 파일상태로 남아있으며 만료날짜를 지정할 수 있습니다.쿠키는 장바구니 목록이나 로그인 상태 정보를 브라우저에 저장해 둘 수 있습니다. 쿠키 생성 방법서버는 클라이언트의 요청에 응답할 때 set-cookie 헤더를 전송해서 쿠키를 생성할 수 있습니다.set-cookie 헤더 구조 : set-cookie: name = value; expires=만료날짜; domain=도메인; path=경로응답을 받은 브라우저가 쿠키를 생성하고 관리합니다. name : 이름과 값으로 이루어진 쿠키의 정보입니다. ex)id=admin expires : 쿠키의 만료 날짜를 지정할 수 있습니다. 지정된 날짜가 지나면 자동으로 ..
중복확인 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...