Cookie
어떤 웹 사이트에 들어갔을 때, 서버가 일방적으로 클라이언트에 전달하는 작은 데이터 조각
- 서버가 웹 브라우저에 정보를 저장하고 불러올 수 있는 수단
- 해당 도메인에 대해 쿠키가 존재하면, 웹 브라우저는 도메인에게 http 요청 시 쿠키를 함께 전달한다.
특징
기본적으로는 쿠키는 오랜 시간 동안 유지될 수 있고, 자바스크립트를 이용해서 쿠키에 접근할 수 있기 때문에 쿠키에 민감한 정보를 담는 것은 위험하다
- 서버가 클라이언트에 데이터를 저장할 수 잇다.
- 데이터를 저장한 이후 아무 때나 데이터를 가져올 수는 없다.
- 데이터를 저장한 이후 특정한 조건들이 만족한 경우에만 다시 가져올 수 있다.
- 이런 조건들은 다음 쿠키 옵션으로 표현
쿠키 옵션
- Domain
- 쿠키가 전송될 수 있는 도메인을 제한
- 해당 도메인의 서브도메인에서도 쿠키를 사용
- 도메인은 포트 및 서브 도메인 정보(
www
등) , 세부 경로를 포함하지 않는다.
- Path
- 쿠키가 전송될 수 있는 URL 경로를 제한
- 해당 경로와 하위 경로에서만 쿠키를 사용
- MaxAge / Expires
- 쿠키의 만료 날짜를 지정
- Expires 는 쿠키가 만료되는 날짜를 GMT 형식으로 지정
- Max-Age 는 쿠키의 유효 기간을 초 단위로 지정
- 두 옵션이 모두 지정되지 않는 경우 브라우저 탭을 닫아야만 쿠키가 제거
- Secure
- SameSite
- 쿠키가 외부 사이트로 전송되지 않도록 제한
- CSRF(Cross-Site Request Forgery) 공격과 같은 보안 위협 방지
- HttpOnly
- JavaScript를 사용하여 쿠키에 액세스할 수 없도록 한다
- XSS(Cross-Site Scripting) 공격과 같은 보안 위협에서 쿠키를 안전하게 보호