SameSite 쿠키 설명

<ph type="x-smartling-placeholder">

브라우저 지원

  • Chrome: 51. <ph type="x-smartling-placeholder">
  • Edge: 16. <ph type="x-smartling-placeholder">
  • Firefox: 60 <ph type="x-smartling-placeholder">
  • Safari: 13. <ph type="x-smartling-placeholder">

소스

모든 쿠키에는 키-값 쌍과 함께 해당 쿠키를 반환하는 해당 쿠키가 사용되는 시기와 위치를 제어할 수 있습니다.

SameSite 속성( RFC6265bis) 퍼스트 파티 쿠키 또는 서드 파티 쿠키 사용 여부를 선언할 수 있습니다. 동일한 사이트 컨텍스트를 사용하세요 어떤 '사이트'가 어떤 페이지이고 의미합니다 사이트는 도메인 서픽스와 있습니다. 예를 들어 www.web.dev 도메인은 web.dev 사이트의 일부입니다.

핵심 용어: 사용자가 www.web.dev에서 이미지를 요청하는 경우 static.web.dev: 동일 사이트 요청입니다.

공개 접미사 목록은 동일한 사이트에 있다고 가정해 보겠습니다 .com 같은 최상위 도메인에만 종속되는 것이 아니라 github.io와 같은 서비스도 포함될 수 있습니다. 이렇게 하면 your-project.github.iomy-project.github.io: 별도의 사이트로 계산됩니다.

핵심 용어: 사용자가 your-project.github.io에서 이미지를 요청하는 경우 my-project.github.io: 크로스 사이트 요청입니다.

SameSite 속성을 사용하여 쿠키 사용을 선언합니다.

쿠키의 SameSite 속성은 있습니다. 속성을 지정하지 않거나 Strict 또는 Lax: 동일한 사이트 요청으로 쿠키를 제한합니다.

SameSiteStrict로 설정하면 퍼스트 파티 맥락 즉, 쿠키의 사이트가 표시된 사이트와 일치하는 경우 를 입력합니다. 따라서 promo_shown 쿠키가 다음과 같이 설정된 경우:

Set-Cookie: promo_shown=1; SameSite=Strict

사용자가 사이트를 방문하면 쿠키가 예상대로 요청과 함께 전송됩니다. 그러나 사용자가 다른 사이트에서 내 사이트로 연결되는 링크를 따라가면 초기 요청에서 전송되지 않습니다 이는 항상 초기 페이지보다 뒤에 있는 기능과 관련된 쿠키에 사용자의 의도를 탐색하는 다른 작업을 수행하지만 promo_shown와 같은 쿠키에 제한적입니다. 독자가 링크를 따라가는 경우 사이트에 로그인한 후 환경설정을 적용할 수 있도록 쿠키가 전송되기를 원합니다.

SameSite=Lax는 브라우저가 이러한 최상위 탐색 예를 들어 다른 사이트가 내 사이트의 콘텐츠를 참조하는 경우 이 경우 고양이 사진을 사용하고 기사 링크를 다음과 같습니다.

<p>Look at this amazing cat!</p>
<img src="https://blog.example/blog/img/amazing-cat.png" />
<p>Read the <a href="https://blog.example/blog/cat.html">article</a>.</p>

쿠키가 다음과 같이 Lax로 설정된 경우:

Set-Cookie: promo_shown=1; SameSite=Lax

브라우저가 다른 사용자의 블로그에 대해 amazing-cat.png를 요청하면 내 블로그는 쿠키를 전송하지 않습니다 하지만 독자가 cat.html에 대한 링크가 있는 경우 해당 요청에 쿠키가 포함되어 있습니다.

이러한 방식으로 SameSite을(를) 사용하여 웹사이트에 영향을 주는 쿠키를 설정하는 것이 좋습니다. Lax에 대한 디스플레이와 Strict에 대한 사용자 작업과 관련된 쿠키입니다.

SameSiteNone로 설정하여 쿠키를 사용하려는 것을 나타낼 수도 있습니다. 모든 컨텍스트에서 전송됩니다 사용자가 다른 사이트에서 사용하는 서비스(예: 제휴 프로그램, 광고 또는 로그인을 하지 않아야 합니다. 여러 사이트의 경우 None를 사용하여 의도를 명확히 합니다.

<ph type="x-smartling-placeholder">
</ph> 컨텍스트에 따라 없음, 느슨함, 엄격 라벨이 지정된 쿠키 3개 <ph type="x-smartling-placeholder">
</ph> 쿠키의 컨텍스트를 None, Lax 또는 Strict로 명시적으로 표시합니다.

SameSite를 사용하지 않은 기본 동작 변경사항

브라우저 지원

  • Chrome: 80. <ph type="x-smartling-placeholder">
  • Edge: 86. <ph type="x-smartling-placeholder">
  • Firefox: 깃발 뒤쪽에 있습니다.
  • Safari: 지원되지 않음 <ph type="x-smartling-placeholder">

SameSite 속성은 광범위하게 지원되지만 널리 사용되지는 않습니다. 이전에는 SameSite 없이 쿠키를 설정하면 기본적으로 쿠키를 전송하도록 설정되었습니다. 사용자가 CSRF에 취약하고 의도치 않은 의도치 않은 방식으로 도움이 될 수 있습니다 개발자가 자신의 의도를 명시하도록 장려하기 위해 IETF 제안인 점진적으로 향상된 쿠키 에서는 두 가지 주요 변경사항을 설명합니다.

  • SameSite 속성이 없는 쿠키는 SameSite=Lax로 간주됩니다.
  • SameSite=None가 있는 쿠키는 Secure도 지정해야 합니다. 즉, 보안 컨텍스트가 사용됩니다

이 두 변경사항은 이전 버전 관리 기능이 올바른 브라우저와 이전 버전의 SameSite 속성뿐 아니라 이전 SameSite 버전을 지원하지 않는 브라우저 용도는 다음과 같습니다. 개발자의 브라우저에 의존하여 쿠키만 사용하여 기본 동작을 의도된 용도를 명시해야 합니다 클라이언트가 SameSite=None는 이를 무시해야 합니다.

기본값은 SameSite=Lax입니다.

SameSite 속성을 지정하지 않고 쿠키를 전송하면 브라우저에서 해당 쿠키를 SameSite=Lax로 설정된 것처럼 처리합니다. 여전히 권장 SameSite=Lax를 명시적으로 설정하여 더욱 일관된 사용자 환경을 제공하세요. 할 수 있습니다.

SameSite=None은(는) 안전해야 합니다.

SameSite=None를 사용하여 크로스 사이트 쿠키를 만들 때는 쿠키도 설정해야 합니다. 브라우저가 이를 수락하도록 Secure로 설정합니다.

Set-Cookie: widget_session=abc123; SameSite=None; Secure

Chrome 76부터 이 동작을 테스트할 수 있습니다. about://flags/#cookies-without-same-site-must-be-secure 및 Firefox 69에서 network.cookie.sameSite.noneRequiresSecure를 설정하여 about:config

또한 가능한 한 빨리 기존 쿠키를 Secure(으)로 업데이트하시기 바랍니다. 사이트에서 서드 파티 콘텐츠를 제공하는 서비스를 이용하는 경우 서비스 제공업체가 쿠키를 업데이트하고, 스니펫이나 새 동작을 사용하는지 확인합니다.

이러한 문제를 성공적으로 처리하기 위해 쿠키를 업데이트하는 방법에 대한 자세한 내용은 SameSite=None 변경사항과 브라우저 동작의 차이에 관한 자세한 내용은 후속 도움말인 SameSite 쿠키 레시피를 참고하세요.

릴리 첸, 몰테 우블, 마이크의 기여와 의견에 감사드립니다. 웨스트, 롭 도슨, 톰 슈타이너, 비벡 세카르입니다

쿠키 히어로 이미지 제공자 필레린 프리스케스플래시 해제