Chrome 135의 새로운 샌드박스 allow-same-site-none-cookies 값

Natalia Markoborodova
Natalia Markoborodova

Chrome 135부터 새로운 sandbox 값인 allow-same-site-none-cookies를 사용할 수 있습니다. 이 정책이 지정되고 서드 파티 쿠키를 사용할 수 없는 경우 브라우저는 퍼스트 파티 샌드박스 처리된 iframe에서 발생한 HTTP 요청에만 SameSite=None 쿠키를 전송합니다.

샌드박스 처리된 iframe이란 무엇인가요?

샌드박스 처리된 iframe은 특수 제한이 적용된 iframe입니다. null, 불투명 출처가 있는 것으로 간주됩니다. 기본적으로 스크립트, 양식, 팝업과 같이 잠재적으로 유해한 기능은 샌드박스 처리된 iframe 내에서 사용할 수 없습니다.

sandbox 속성을 사용하여 샌드박스 처리된 iframe에서 사용할 수 있는 기능을 지정합니다. 예를 들면 다음과 같습니다.

 <iframe sandbox="allow-scripts" src="example-sandboxed-frame.html"/>

삽입된 콘텐츠가 성공적으로 로드되는 데 필요한 권한을 세부적으로 선택하고 잠재적인 악용의 범위를 제한할 수 있으므로 항상 샌드박스를 사용하는 것이 좋습니다.

새로운 정책이 필요한 이유는 무엇인가요?

allow-same-site-none-cookies가 도입되기 전에는 샌드박스 처리된 iframe 내에서 두 가지 쿠키 시나리오를 구성할 수 있었습니다.

  • sandbox 속성에 allow-same-origin 토큰이 없으면 iframe의 출처가 null직렬화되어 샌드박스 페이지의 모든 요청이 크로스 사이트가 됩니다. 이 경우 SameSite=None가 있는 쿠키만 요청에 포함됩니다.
  • sandbox 속성에 allow-same-origin 토큰이 있으면 요청이 iframe의 실제 출처에서 발생한 것으로 처리되므로 SameSite 값이 있는 쿠키를 전송할 수 있습니다.

서드 파티 쿠키가 차단된 경우 allow-same-origin가 없는 샌드박스 처리된 iframe은 allow-same-site-none-cookies를 사용 설정하지 않는 한 쿠키를 전송할 수 없습니다.

allow-same-origin가 있는 iframe은 서드 파티 쿠키가 차단된 경우에도 동일 사이트 요청에 쿠키를 포함할 수 있습니다. 그러나 전체 출처의 쿠키 저장소가 잠재적으로 악의적인 웹 활동에 노출됩니다.

allow-same-site-none-cookies를 사용하면 iframe이 HTTP 요청에서 SameSite=None 쿠키를 전송할 수 있지만 민감할 수 있는 SameSite=StrictSameSite=Lax 쿠키는 포함되지 않습니다.

실제 사례

사용자가 맞춤 코딩 프로젝트를 만들고 실행하며 다른 사용자의 코드를 삽입할 수 있는 사이트 practice-coding.example를 생각해 보세요. 서비스를 사용하려면 사용자가 로그인해야 하며, 이로 인해 SameSite=Strict 세션 쿠키가 설정됩니다.

다른 사용자가 practice-coding.example/cookie-theft 프로젝트를 만들면 다른 사용자가 알지 못하는 사이에 프로젝트에 iframe으로 삽입할 수 있습니다. SameSite=StrictSameSite=Lax 쿠키가 practice-coding.example/cookie-theft iframe에 노출되면 악의적인 사용자가 다른 사용자의 세션 쿠키를 훔칠 수 있습니다.

이 시나리오에서는 사이트 소유자가 민감할 수 있는 쿠키에 대한 액세스를 제한하는 것이 좋습니다. 하지만 여전히 샌드박스 처리된 iframe 내에서 SameSite=None 쿠키를 허용해야 할 수 있습니다. 예를 들어 practice-coding.example/coding-interview 샌드박스 iframe에서는 응시자가 코드를 다시 방문할 수 있도록 SameSite=None 쿠키가 필요할 수 있습니다. allow-same-site-none-cookies는 전체 쿠키 저장소가 노출되는 것을 방지하면서 필요한 SameSite=None 쿠키를 선택적으로 허용합니다.

퍼스트 파티 샌드박스 프레임 내에서 SameSite=None만 허용하려면 어떻게 해야 하나요?

퍼스트 파티 샌드박스 페이지의 요청에서 SameSite=None 쿠키를 사용 설정하려면 iframe 태그에 allow-same-site-none-cookies 토큰을 지정합니다. 예를 들면 다음과 같습니다.

 <iframe sandbox="allow-same-site-none-cookies" src="example-sandboxed-page.html"/>

Content-Security-Policy HTTP 헤더를 사용하여 allow-same-site-none-cookies 정책을 설정할 수도 있습니다.

Content-Security-Policy: sandbox allow-same-site-none-cookies;

데모를 통해 직접 사용해 보세요.

참여 및 의견 공유

문제를 제출하여 의견을 공유하거나 문제를 신고하거나 GitHub에서 대화에 참여하세요.