본문 바로가기

카테고리 없음

Cookie의 MaxAge, Expires 옵션

쿠키에 설정할 수 있는 Max-Age와 Expires는 쿠키의 생명 주기를 결정하는 옵션이다.

 

Max-Age: 이 옵션은 쿠키가 얼마나 오래 지속될지를 초 단위로 설정한다. 예를 들어, Max-Age=3600은 쿠키가 생성된 시점부터 1시간 후에 만료되도록 설정하는 것.

쿠키를 설정할 때 Max-Age 값을 명시적으로 주지 않으면, 브라우저가 종료되는 시점에 쿠키가 자동으로 만료되어 삭제된다. 이를 세션 쿠키라고 부른다.

 

Expires: 이 옵션은 쿠키의 만료일을 명확하게 설정한다. Expires 값은 HTTP 날짜 형식(GMT/UTC 포맷)으로 되어 있다. 예를 들어, Expires=Wed, 21 Oct 2023 07:28:00 GMT는 쿠키가 2023년 10월 21일 07:28에 만료되도록 설정하는 것. Expires를 설정하지 않으면, Max-Age와 마찬가지로 쿠키는 세션 쿠키가 되며 브라우저 종료 시 삭제된다.

 

Max-Age와 Expires 모두 설정된 경우, Max-Age가 우선 적용된다.

둘 다 설정하지 않으면, 생성된 쿠키는 세션 쿠키가 된다. 즉, 사용자의 브라우저 세션이 종료되는 시점(브라우저를 닫는 등)에 쿠키도 삭제된다. 이러한 세션 쿠키는 사용자가 사이트를 이용하는 한 세션 동안 상태를 유지하는 데 사용되지만, 브라우저를 닫는 순간 정보가 사라지므로 영구적인 데이터 저장에는 적합하지 않다.

일시적인 로그인 세션 등 일부 유스케이스에서는 원하는 동작일 수는 있지만 설정하지 않을 경우 몇 가지 보안상의 이슈가 생길 수 있다.

 

만약 쿠키에 민감한 정보가 저장되어 있고 만료 시간이 설정되지 않으면 그 정보는 브라우저 세션을 종료할 때까지 유효하다. 브라우저를 닫지 않고 민감한 작업을 수행하는 경우 정보가 유출될 위험이 높아지고, 쿠키가 자동으로 만료되지 않으면 그 쿠키를 이용해 웹사이트에 접근하는 시간이 늘어난다. 이는 사용자의 계정이 해킹되거나 누군가가 사용자의 장치를 물리적으로 접근하여 웹사이트에 허가되지 않은 접근을 시도할 수 있음을 의미한다.