사전지식
-
Cookie : 하이퍼 텍스트의 기록서(HTTP)의 일종으로서 인터넷 사용자가 어떠한 웹사이트를 방문할 경우 그 사이트가 사용하고 있는 서버를 통해 인터넷 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일을 일컫는다.
-
구현 : 쿠키가 일반적으로 웹 서버에 의해 설정되지만 자바스크립트와 같은 스크립트 언어를 사용하여 클라이언트에 의해 설정이 가능하다. (스크립트 언어에 의해 쿠키를 수정하지 못하게 하는 쿠키의 HttpOnly 플래그가 설정되어 있지 않는 경우에 한해)
-
설정 : Set-Cookie:
=
*서버 헤더의 쿠키 전달
HTTP/1.0 200 OK Content-type: text/html Set-Cookie: yummy_cookie=choco Set-Cookie: tasty_cookie=strawberry [page content]
*브라우저 쿠키 회신
GET /sample_page.html HTTP/1.1 Host: www.example.org Cookie: yummy_cookie=choco; tasty_cookie=strawberry
- 라이프 타임 : 세션쿠키는 현재 세션이 끝날때 삭제된다. 영속적인 쿠키는 Expires 속성에 명시된 날짜에 삭제되거나, Max-Age 속성에 명시된 기간 이후에 삭제된다.
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT;
-
HttpOnly
Secure 쿠키는 HTTPS 프로토콜 상에서 암호화된 요청일 경우에만 전송된다. 그러나 민감한 정보는 절대 쿠키에 저장되면 안된다. chrome52 또는 firefox52로 시작한다면 http는 쿠키에 Secure 설정을 지시할 수 없다.
Cross-site(XSS) 공격을 방지하기 위해, HttpOnly 쿠키는 Javascript의 Document.cookie API에 접근할 수 없다. (= 브라우저에서 쿠키에 접근할 수 없다)
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly
출처
https://developer.mozilla.org/ko/docs/Web/HTTP/Cookies https://ko.wikipedia.org/wiki/HTTP_%EC%BF%A0%ED%82%A4 https://nsinc.tistory.com/121