쿠키 설정 값

김민석·2021년 4월 14일
0

네트워크

목록 보기
3/9

아직 해본적은 없지만
http 모듈 혹은 express 등을 사용할 때 cookie를 직접 세팅해서 클라이언트에 전송할 수 있는 것으로 보인다.

그때, 여러 옵션들을 지정할 수 있는데 그것에 대해 정리하였다.

MDN:Set-Cookie
express-session
어떤 것을 사용하느냐에 따라 구체적인 형태는 다르다.


각 요소에 대해 더욱 자세하게 나와있는 사이트

1. Domain

쿠키 옵션에서 도메인은 포트 및 서브 도메인 정보, 세부 경로를 포함하지 않는다. 따라서, example.com 같은 형식으로 기입한다.

만약 쿠키 옵션에서 도메인 정보가 존재한다면 클라이언트에서는 쿠키의 도메인 옵션과 서버의 도메인이 일치해야만 쿠키를 전송할 수 있다.

2. Path

default: '/'

설정된 Path를 만족하는 모든 경우에 쿠키를 서버로 전송할 수 있다.

즉 Path가 /users로 설정되어 있고, 요청하는 세부 경로가 /users/login 인 경우라면 쿠키 전송이 가능하다.

하지만 /user/login으로 전송되는 요청은 Path 옵션을 만족하지 못하기 때문에 서버로 쿠키를 전송할 수 없다.

3. MaxAge or Expires

MaxAge : 쿠키가 몇 초 동안 유효한지 설정하는 옵션 (밀리세컨드)
Expires : 언제 (Date)까지 유효한지 설정하는 옵션

4. Secure

쿠키를 전송해야 할 때 사용하는 프로토콜에 따른 쿠키전송 여부를 결정한다.
만약 해당 옵션이 true로 설정된 경우, 'HTTPS' 프로토콜을 이용하여 통신하는 경우에만 쿠키를 전송 할 수 있다.

5. HttpOnly

자바스크립트에서 브라우저의 쿠키에 접근 여부를 결정한다. 만약 해당 옵션이 true로 설정된 경우, 자바스크립트에서는 쿠키에 접근이 불가하다.

명시되지 않는 경우 기본으로 false로 지정되어 있습니다.
만약 이 옵션이 false인 경우 자바스크립트에서 쿠키에 접근이 가능하므로 'XSS' 공격에 취약합니다.

6. SameSite

3가지 옵션이 있다. (cors와 밀접한 관련이 있는 것으로 보인다.)

1. 'lax'

문서에서는 'safe' HTTP method를 사용할 때 쿠키를 보낸다.

GET, HEAD, or `OPTIONS같이 서버에 어떤 변경을 주지 않는 method 들을 'safe' method라고 한다.

2. 'none'

모든 상황에서 쿠키가 전달 됨

3. 'strict'

같은 site 일때만 쿠키가 전달됨.

0개의 댓글