본문 바로가기
개발

Cookie 설정

by 혈중마라농도 2022. 5. 17.

쿠기 설정 값들에 대해서 설명한 내용입니다.

개발자모드에서 Application Cookie 표시 목록

- Name : 쿠키명 유니크한 값은 아니고, Name, Domain, Path 3가지가 Primary Key 라고 보시면 됩니다.

 - Value : 위에 그림과 같이 대부분 암호화가 된 값으로 쓰이고 있습니다.  PlainText로 써도 무방하지만, 속성에 따라서 위변조가 가능합니다. 

 - Domain : 지정하지 않는다면 자기 도메인의 쿠키를 생성합니다.
Ex) aaa.bbb.com 도메인이라면 Domain=aaa.bbb.com 으로 지정 됩니다.
 도메인에 대한 설정은 RFC 2965 ( Set-Cookie2, 이미 폐기 된 RFC 2109 )가 있지만 대부분의 브라우저는 이를 완전히 지원하지 않지만 Netscape의 원래 사양을 준수합니다. 하지만 브라우저마다 동작이 다를 수 있으니 주의해야합니다.
아래의 stackoverflow도 참고하시면 될 듯 합니다.
https://stackoverflow.com/questions/1062963/how-do-browser-cookie-domains-work

 

How do browser cookie domains work?

Due to weird domain/subdomain cookie issues that I'm getting, I'd like to know how browsers handle cookies. If they do it in different ways, it would also be nice to know the differences. In other...

stackoverflow.com

 - Path : 지정하지 않는다면 루트(/)로 지정 됩니다. 위와 같이 /manage/newpost 처럼 지정된다면, nhj2021.tistory/manage/newpost 하위에서만 값을 사용할 수 있습니다.

 - Expires / Max-Age : 만료기간을 지정합니다. 지정하지 않는다면 Session으로 설정되어, 브라우저가 종료 될 때까지 사용하게 됩니다. 지정하면 지정된 날짜까지 사용합니다.

 - HttpOnly : 사용시 웹브라우저 자바스크립트 ( document.cookie )에서 위변조가 불가능합니다. 항상 서버에서 변경 가능합니다. 설정하지 않을 경우 XSS 공격을 받을 수 있습니다.

 - Secure : https 도메인에서 사용되며, http 도메인으로 접근 하였을 때, 공유되지 않습니다. 즉 목록에도 보이지 않고, 조회도 불가능합니다.

 - SameSite : https 도메인에서 사용되며, Strict, None, Lax 3가지 속성이 존재합니다.
  1. Lax : 쿠키는 일반적인 사이트 간 하위 요청(예: 이미지 또는 프레임을 타사 사이트로 로드)에서는 전송되지 않지만 사용자가 원본 사이트 를 탐색할 때(즉, 링크를 따라갈 때) 전송됩니다. SameSite이것은 최신 브라우저 버전에서 명시적으로 지정되지 않은 경우 기본 쿠키 값 입니다(브라우저 호환성의 "SameSite: 기본값은 Lax" 기능 참조).
  2. Strict : 쿠키는 자사 컨텍스트에서만 전송되며 타사 웹사이트에서 시작한 요청과 함께 전송되지 않습니다.
  3. None : 쿠키는 모든 상황에서, 즉 자사 및 교차 사이트 요청에 대한 응답으로 전송됩니다. 가 설정 되면 SameSite=None쿠키 Secure속성도 설정해야 합니다(그렇지 않으면 쿠키가 차단됨).

반응형

댓글