티스토리 뷰

SW 개발/API

HTTP 쿠키 플래그 정리

지단로보트 2020. 1. 6. 00:53

개요

  • 쿠키(Cookie)란 서버가 브라우저에게 주는 정보이다. 주로 사용자의 로그인 결과 정보를 응답 헤더의 Set-Cookie에 담아 브라우저에게 전달하면, 브라우저는 해당 정보를 로컬에 저장하여 활용한다. 대개 브라우저를 종료하면 같이 소멸되는 짧은 수명의 쿠키를 가장 많이 사용하고, 브라우저를 종료해도 오랫동안 유지되는 긴 수명의 쿠키 또한 사용한다. (대표적으로 Remember Me 쿠키가 있다.)

domain

  • 쿠키는 기본적으로 도메인이 완전히 일치해야만 공유될 수 있다. 예를 들어 domain.com 도메인에서 생성된 쿠키는 동일한 domain.com 에서만 공유되고, subdomain.domian.com과 같은 서브 도메인에서는 공유되지 않는다. 하지만, domain=domain.com과 같이 명시하면 domain.com를 공유하는 모든 서브 도메인에서도 쿠키를 공유할 수 있다. [관련 링크]
Set-Cookie: name=value; domain=domain.com

secure

  • 브라우저에서 쿠키는 기본적으로 HTTP, HTTPS 프로토콜에 관계없이 서버에 전달된다. 이 경우 HTTP 요청시 외부의 공격자에게 쿠키 정보를 탈취당할 수 있어 위험하다. secure를 명시하면 HTTPS 프로토콜일 경우에만 쿠키를 전달하여 외부의 공격자로부터 쿠키 정보를 보호할 수 있다.
Set-Cookie: name=value; secure

HttpOnly

  • 서버 응답으로 획득한 쿠키는 기본적으로 브라우저의 클라이언트(JavaScript)에서 읽고 수정하는 것이 가능하다. 이 경우 공격자로부터 탈취될 수 있어 위험하다. HttpOnly를 명시하면 클라이언트에서의 접근이 완전히 차단되어 보안을 강화할 수 있다. 사용자 인증에 사용되는 access_token 또는 remember_token은 반드시 secure, HttpOnly을 모두 명시해야 한다.
Set-Cookie: name=value; HttpOnly

참고 글

댓글
댓글쓰기 폼