쿠키

 

HTTP는 무상태 프로토콜이기에 쿠키 미사용시엔 클라이언트가 서버에 접속했는지 계속 확인할 수 없다.

사용하는 예

1)로그인후에 유저 정보를 서버가 알기 위해 사용한다.

 

Set-Cookie

- 서버에서 클라이언트로 쿠키 전달(Response)

 

Cookie

- 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청 시 서버로 전달

 

즉, 서버가 쿠키를 전달하면 클라이언트는 저장하고 항상 보내준다.

모든 요청에 자동으로 포함한다.

 

보안을 위해 쿠키를 서버를 세팅할때 세션 아이디를 생성해서 사용한다.

세션 아이디를 통해 서버에서 누군지 해석한다.

 

사용처

- 사용자 로그인 세션 관리에서 사용한다.

- 광고 정보 트래킹

 

쿠키 정보는 항상 서버에 전동 됨

- 최소한의 정보만 사용

- 서버에 전송하지 않고, 웹 브라우저 내부에 데이터를 저장하고 싶으면 웹 스토리지(localStorage, sessionStorage) 참고

 

주의점

- 보안에 민감한 데이터는 저장하면 안 됨(주민번호, 신용카드 번호)


쿠키 생명주기

Expires(날짜), max-age(시간)

쿠키를 계속 유지할 수 없기에 날짜, 시간을 제한한다.

 

세션 쿠키

- 만료 날짜를 생략하면 브라우저 종료 시까지만 유지

 

영속 쿠키

- 만료 날짜를 입력하면 해당 날짜까지 유지


쿠키-도메인

명시

- 명시한 문서 기준 도메인+ 서브 도메인 포함

- domain=example.org로 설정할 경우

- example.orgdev.example.org 모두에 접근 가능하다.

 

생략 : 현재 문서 기준 도메인만 적용


쿠키 - 경로

이 경로를 포함한 하위 경로 페이지만 쿠키 접근

일반적으로 path=/ 루트로 지정


쿠키 - 보안

Secure, HttpOnly, SameSite

 

Secure

- Https에서만 전송한다.

 

HttpOnly

- XSS 공격 방비

- 자바스크립트에서 접근 불가(document.cookie)

- http 전송에만 사용

 

SameSite

- XSRF 공격 방지

- 요청 도메인과 쿠키에 설정된 도메인이 같은 경우만 전송

 

 

 

 

+ Recent posts