Cookie Options

0
post-thumbnail

Max-Age

  • cookie가 유효한 기간을 설정한다.
  • 초 단위이다.
  • 0이나 음수로 설정되면 즉시 cookie가 만료된다.
  • 어떤 cookie에 ExpiresMax-Age 가 모두 설정되어 있을 경우 Max-Age 가 우선적으로 적용된다.

Expires

  • cookie가 만료될 일자를 지정한다.
Name=Value; Expires=Tues, 6 Feb 2024 00:00:00 GMT

HttpOnly

  • Browser JavaScript에서의 cookie 접근을 허용할 것인지의 여부를 결정한다.
  • HttpOnly 가 설정되어 있을 경우 Browser JavaScript에서 document.cookie 등으로 쿠키에 접근할 수 없다.

Path

  • cookie를 전송할 수 있는 url path를 제한한다.
  • path가 설정되면 해당 path의 subpath까지도 허용한다.
Name=Value; Path=/docs

# OK
/docs
/docs/
/docs/web/

# NOPE
/
/docsets/
/fr/docs

Domain

  • 서버가 브라우저에 쿠키를 내려줄 때, 해당 쿠키를 어떤 도메인과 통신할 때 사용하여야 하는지를 제한하는 설정
  • 서버는 현재 서버의 도메인 혹은 그 상위 도메인만을 지정할 수 있다.
    • 다른 도메인을 지정할 경우 Set-Cookie Header는 무시된다.
  • 생략할 경우 현재 서버의 도메인으로 지정된다.

Secure

  • Secure 설정을 한 cookie는 https 요청을 통해서만 전달된다.

SameSite

  • 사용자가 다른 사이트에 접속해서 내 사이트(cookie를 발급한)로 ajax, script src, image src, iframe 등의 요청을 보낼 때, 발급한 cookie를 요청에 포함시킬 수 있게 할지의 여부를 결정한다.
  • None, Strict, Lax 3가지의 옵션이 있다.

None

  • 크로스 사이트 요청 시에도 항상 해당 cookie를 포함하여 전송한다.
  • 기존에는 SameSite 옵션이 없었기 때문에 기본값이 None이었으나, 최근 대부분의 브라우저에서 옵션 기본값으로 Lax를 채택하고 있다.

Strict

  • 크로스 사이트 요청 시에는 항상 해당 cookie를 전송하지 않는다.

Lax

  • 몇 가지 예외 케이스를 제외하고는 크로스 사이트 요청 시 해당 cookie를 전송하지 않는다.
    • 안전한 HTTP Method(GET, OPTIONS와 같이 멱등성 보장)를 통해, Top-Level Naviagtion(<a>, window.location.replace, 302 Redirect 등)을 통해 이동할 때

Reference

0개의 댓글