Cross-Site와 Same-Site 속성

반응형
Cross-Site : 쿠키의 도메인이 사용자 주소 표시줄에 표시된 주소가 아닌 다른 주소인 경우 (Third-party)

 

Same-Site 속성은 서드파티 쿠키의 보안적 문제(CSRF 공격)을 해결하기 위해 만들어진 기술로, Cross-site로 전송하는 요청의 경우 쿠키의 전송에 제한을 두도록 한 것입니다.

 

Same-Site의 정책으로는 3가지의 종류가 있습니다.

 

1) None : Same-Site가 없을 때와 동일하게 동작합니다. None으로 설정된 쿠키는 크로스 사이트의 요청에도 항상 전송이 되고, 보안적으로도 똑같이 문제가 있습니다.

 

2) Strict : 가장 강력한 정책으로, 크로스 사이트의 요청에는 어떠한 것도 전송되지 않습니다. 즉, 퍼스트파티 쿠키만 전송됩니다.

 

3) Lax : Strict보다는 느슨한 정책으로 크로스 사이트의 요청에도 몇 가지 예외적인 요청에는 전송이 됩니다.

 


Lax가 크로스 사이트의 요청에도 전송되는 경우

1. 같은 웹사이트인 경우(퍼스트 파티 쿠키)

2. Top Level Navigation(웹페이지 이동)인 경우

  • Top Level Navigation에는 유저가 링크를 클릭("<a>")하거나 window.location.replace. 등으로 인해 자동으로 이뤄지는 이동, 302 리다이렉트를 이용한 이동이 포함됩니다.
  • <iframe>이나 <img>를 문서에 삽입함으로서 발생하는 HTTP 요청은 Navigation이라고 할 수 없기 때문에 Lax 쿠키가 전송되지 않습니다.
  • <iframe>안에서 페이지를 이동하는 경우는 Top Level이 아니기 때문에 Lax 쿠키를 전송하지 않습니다.

3. 안전한 HTTP 메서드 요청

  • POST나 DELETE 요청의 경우 서버의 상태를 수정할 수 있기 때문에 안전하지 않은 요청이므로 Lax 쿠키가 전송되지 않습니다.
  • GET처럼 서버의 상태를 바꾸지 않고 조회만 하는 요청에는 Lax 쿠키가 전송됩니다.

First-Party Sets

위에서 나온 Same-Site 옵션으로 인해 차단될 서드파티 쿠키의 기능을 어느 정도 보완하기 위해 제안된 표준입니다.

예를 들어 같은 회사에서 운영하는 사이트더라도 각 사이트의 기능, 제공하는 서비스, 국가 등에 따라 도메인이 달라질 수 있습니다.

이러한 상황에서 서로 쿠키를 주고 받고 싶은데 서드파티 쿠키로 인식되어 차단된다면 제공하는 서비스에 큰 차질이 생기게 됩니다.

이것을 해결하기 위해, 서로 같은 사이트라고 선언되어진 것들은 브라우저에서 같은 도메인으로 인식하여 쿠키를 주고 받는 것을 허용하는 것입니다.

 

구글에서 제안했지만 아직 정확히 채택되었는지는 좀 더 알아봐야할 것 같습니다...


참고링크

링크1

링크2

링크3

반응형

'방구석 컴퓨터 > 방구석 네트워크' 카테고리의 다른 글

HTTP 메서드  (0) 2023.09.13
쿠키 (Cookie)  (0) 2023.08.13
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유