Cookie Options

  1. Name - 쿠키 이름

  2. Value - 쿠키 내용 값

  3. Domain

    간단하게 말해 도메인은 쿠키에 접근이 가능한 도메인을 의미한다. 몇가지 제약이 있는데 아래와 같으며 이런 제약이 있는 이유는 안정성을 높이기 위해 만들어졌다.

  4. Path

    URL path(경로)로 지정된 경로 혹은 하위 경로 페이지에 접근 했을 때만 해당 쿠키를 사용할 수 있다. 절대 경로여야 하며 미지정시 기본값은 현재 페이지(경로)로 설정된다. 즉, 모든 페이지에서 사용이 가능함을 뜻한다. 쉽게 예시로 들자면 만약 쿠키의 path가 /account page로 설정되어있다면 /account/signin 에서 확인이 가능하지만 /mypage 에서는 확인이 불가하다.

  5. Expires / Max-age

    exipries 는 유효일자를 뜻하며 Max-age는 만료일을 뜻한다. 두 옵션 중 하나라도 설정되지 않으면 브라우저가 닫힐 때 쿠키도 삭제된다. 이러한 쿠키를 Session Cookie 를 말하며 Expires / Max-ageSession이라고 표기된다.

  6. Size - cookie 사이즈를 말하며 byte 단위이다.

  7. HttpOnly

    만에하나 해커가 악의적으로 페이지에 코드를 삽입하여 사용자가 웹페이지에 방문할 때 document를 통하여 확인 및 조작할 수 있으며 해커의 코드도 실행이 될 수 있다. 이 옵션을 설정할 경우 설정된 쿠키는 document로 쿠키 정보를 읽을 수 없기 때문에 쿠키를 보호할 수 있다.

  8. Secure

    해당 옵션을 설정할 경우 HTTPS 프로토콜의 통신하는 경우에만 쿠키가 전송되며 만약 옵션이 지정되지 않을 경우 HTTP, HTTPS 에서 모두 쿠키를 읽을 수 있다. 이러한 옵션이 있는 이유는 쿠키는 기본적으로 도메인만 확인하고 프로토콜에 제약이 없기 때문이다.

  9. SameSite

    보안 속성중 하나로 XSRF 공격을 막기위해 만들어진 옵션이다. 이 옵션을 사용하지 않을 경우 XSRF 보호 토큰 특수 필드를 만들어 악의적으로 탈취하기 위해 사용되더라도 토큰이 없기 때문에 대비할 수 있다. 하지만 가장 큰 단점은 구현 시간이 오래 걸리며 모든 요청을 전부 검사하며 모든 <form />에 보호 토큰을 셋팅해주어야한다.

    하지만 SameSite 옵션을 이용하면 보다 효율적으로 XSRF 공격 을 막을 수 있다. 다만 오래된 브라우저에서는 이 옵션을 지원하지 않는 점이 있다. 따라서 이 옵션을 이용할 경우 구식 브라우저를 제외한 보안 문제를 해결할 수 있다.

    SameSite는 총 두가지의 옵션이 있으며 아래와 같다.