로그인/로그아웃 구현 중 서브 도메인이 다른 상황에 쿠키 값을 공유해야 하는 상황이 생겨 Cookie에 대해 알아보았습니다.
Secure : HTTPS 프로토콜 상 암호화된 요청일 경우 전송
HttpOnly : Cross-Site 스크립트 공격 방지.
Domain : 쿠키가 전송되게 될 호스트 명시
Path : 쿠키 Heafer 전송을 위해 요청되는 URL 경로
SameSite : 쿠키가 cross-site 요청과 함께 전송되지 않음을 요구 -> 위조 공격에 대한 보호 방법 할 수 있으며 이 종류에는 3가지가 있습니다.
SameSite 종류
None: None으로 설정된 쿠키의 경우 크로스 사이트 요청의 경우에도 항상 전송됩니다. 즉, 서브도메인 쿠키도 전송됩니다. 따라서, 보안적으로도 SameSite 적용을 하지 않은 쿠키와 마찬가지로 문제가 있는 방식입니다.
Strict: Strict로 설정된 쿠키는 크로스 사이트 요청에는 항상 전송되지 않습니다. 즉, 서브도메인 쿠키는 전송되지 않고, 메인 도메인 쿠키만 전송됩니다.
Lax: Lax로 설정된 경우, 대체로 서드 파티 쿠키는 전송되지 않지만, 몇 가지 예외적인 요청에는 전송됩니다.
제가 작업을 했을 때 크롬 브라우저로 작업을 진행 하였고, 크롬 브라우저는 쿠키에 대한 SameSite 종류는 Lax로 서브 도메인이 달라도 쿠키가 공유되는 권한으로 기본 설정 되어 SameSite의 옵션이 필요 없었지만 다른 브라우저에도 쿠키가 공유가 필요했기 때문에 Cookie 옵션에 SameSite를 추가 해줬습니다.