쿠키 Cookie
HTTP에서 상태를 유지하기 위해 Key-Value로 이루어진 일종의 단위
클라이언트의 브라우저에 저장되고 요청에 포함되는 정보
클라이언트의 정보 기록과 상태 정보를 표현하는 용도로 사용
*정보 기록: 각 클라이언트의 팝업 옵션을 기억하기 위해 쿠키에 정보를 기록하고 쿠키를 통해 팝업 창 표시 여부를 판단
*상태 정보: 웹 서버는 클라이언트의 로그인 상태와 이용자를 구별해야 하므로 식별할 수 있는 값을 쿠키에 저장해서 사용
HTTP 프로토콜의 특징 → 쿠키 사용 이유
- Connectionless: 하나의 요청에 하나의 응답을 한 후 연결을 종료하는 것
- Stateless: 통신이 끝난 후 상태 정보를 저장하지 않는 것
세션 session
인증 정보를 서버에 저장하고 해당 데이터에 접근할 수 있는 키(유추할 수 없는 랜덤 문자열)을 만들어 클라이언트에 전달하는 방식
키 → session ID
세션은 서버가 저장함
쿠키 적용법
클라이언트가 서버에 요청을 보낼 때 저장된 쿠키를 요청 헤더에 넣어 전송하기 때문에 이용자가 요청을 보낼 때 쿠키 헤더를 변조할 수 있음
EditThisCookie 사용해서 확인할 수 있음 (크롬 확장파일)
서버
HTTP 응답 중 헤더에 쿠키 설정 헤더 Set-Cookie)를 추가하면 클라이언트의 브라우저가 쿠키를 설정
HTTP/1.1 200 OK
Server: Apache/2.4.29 (Ubuntu)
Set-Cookie: name=test;
Set-Cookie: age=30; Expires=Fri, 30 Sep 2022 14:54:50 GMT;...
클라이언트
자바스크립트를 사용해 쿠키를 설정
document.cookie = "name=test;"
document.cookie = "age=30; Expires=Fri, 30 Sep 2022 14:54:50 GMT;"
'W3B H4CK1NG' 카테고리의 다른 글
[dreamhack] csrf-2 (0) | 2024.10.04 |
---|---|
[dreamhack] PHPreg_step1 (0) | 2024.09.09 |
[dreamhack] Lecture. Background: Web Browser (1) | 2023.11.28 |
[dreamhack] Lecture. Background: HTTP/HTTPS (1) | 2023.11.24 |
[dreamhack] Lecture. Background: Web (0) | 2023.11.16 |