🕸️ Network
Cookie
정의
웹 사이트에 접속할 때 서버에 의해 사용자의 컴퓨터에 저장되는 정보
목적 및 특징
목적
HTTP는 무상태 프로토콜이다.
→ 사용자를 구분하기 위해 사용
특징
- 사용자 로그인 세션 관리
- 광고 정보 트래킹
Expires
- 만료일이 되면 쿠키 삭제
- Set-Cookie: expires=Sat, 26-Dec-2020 04:39:21 GMT
- 0이나 음수를 지정하면 쿠키 삭제
- Set-Cookie: max-age=3600 (3600초)
- 세션 쿠키: 만료 날짜를 생략하면 브라우저 종료 시 삭제
- 영속 쿠키: 만료 날짜를 입력하면 해당 날짜까지 유지
Domain
- 명시: 명시한 문서 기준 도메인 + 서브 도메인 포함
- domain=example.org를 지정해서 쿠키 생성
- example.org
- dev.example.org 접근 가능
- 생략: 현재 문서 기준 도메인만 적용
- example.org에서 쿠키 생성, domain 생략
- example.org 접근 가능
- dev.example.org 접근 불가
Path
- path=/home
- 이 경로를 포함한 하위 경로 페이지만 쿠키 접근
- 일반적으로 path=/ 루트로 지정
Secure
쿠키는 http, https를 구분하지 않고 전송
- Secure
- https인 경우에만 전송
- HttpOnly
- XSS 공격 방지
- JS에서 접근 불가(document.cookie)
- HTTP 전송에만 사용
- SameSite
- XSRF 공격 방지
- 요청 도메인과 쿠키에 설정된 도메인이 같은 경우에만 쿠키 전송
예시
- Set-Cookie: 서버에서 클라이언트로 쿠키 전달(응답)
- Cookie: 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달
주의
- 네트워크 추가 트래픽 유발
- 보안에 민감한 정보 저장 금지
- 웹 브라우저에 저장하고 싶지만, 서버에 전송하지 않는 데이터는 웹 스토리지 사용