으스스한 쿠키 금지

쿠키는 갓 구워낸 것이 가장 맛있으니 딱딱해진 쿠키 없이도 할로윈 시즌을 즐길 수 있는 최신 레시피를 알아보세요.

쿠키는 갓 구운 것이 가장 좋습니다. 딱딱해진 쿠키 없이도 할로윈 시즌을 즐길 수 있는 최신 레시피는 무엇일까요?

Google은 웹 플랫폼 전반에서 서드 파티 쿠키를 단계적으로 지원 중단하고 있습니다. 이는 크로스 사이트 추적을 해결하기 위한 중요한 이정표이지만, 아직 갈 길이 멉니다. 지금까지의 성과와 향후 제공할 기능을 살펴보세요.

표면적으로 쿠키는 브라우저와 서버 간에 전송되는 간단한 키-값 저장소를 제공합니다. 이렇게 하면 사이트에서 theme=bats 환경설정을 저장하거나 로그인한 사용자의 세션 ID를 저장하는 등 유용한 기능을 제공할 수 있습니다.

theme=bats 또는 fav_pumpkins=us-nyc와 같은 간단한 값을 포함하는 서드 파티 쿠키

쿠키를 설정한 사이트에서 동일한 쿠키를 사용하는 경우 이를 퍼스트 파티 쿠키라고 합니다. 쿠키를 설정한 사이트와 다른 사이트의 일부로 사용되는 경우 이를 서드 파티 쿠키라고 합니다. 예를 들어 theme=bats 쿠키는 쿠키를 설정한 사이트를 방문하는 경우 퍼스트 파티 쿠키이지만 다른 사이트의 일부로 iframe 또는 기타 교차 사이트 리소스에 포함된 경우 서드 파티 쿠키입니다.

서드 파티 쿠키의 문제는 교차 사이트 추적을 사용 설정할 수 있다는 점입니다. 공유 서비스는 테마와 같은 항목을 설정하는 대신 전체 식별자를 저장할 수 있습니다. 공유 서비스 쿠키가 포함된 여러 사이트를 탐색할 때 동일한 식별자가 전송됩니다. 즉, 한 서비스가 여러 사이트에서 사용자의 활동을 관찰하고 연결할 수 있습니다.

서드 파티 사이트에서 웹에서 사용자를 추적할 수 있는 고유 ID를 포함하는 서드 파티 쿠키

기본적으로 퍼스트 파티 쿠키

이미 많은 진전이 있었습니다. 이전에는 일반 쿠키를 설정하기만 하면 theme=pumpkins가 동일 사이트 또는 교차 사이트 등 모든 컨텍스트에서 전송되었습니다. 대부분의 사이트는 동일 사이트 컨텍스트에서만 쿠키가 전송되기를 원합니다. 이는 쿠키의 SameSite 속성을 통해 제어할 수 있습니다. 예를 들면 다음과 같습니다.

Set-Cookie: theme=bats; SameSite=Lax

이렇게 하면 리소스가 최상위 사이트와 일치하는 경우에만 쿠키를 전송하도록 브라우저에 지시합니다. 하지만 이렇게 하면 사이트에서 퍼스트 파티 쿠키를 원하는 시점을 지정해야 했습니다. 이는 보안 측면에서 약간 역행하는 방식입니다. 기본적으로 권한을 부여받는 것이 아니라 더 많은 권한이 필요할 때 요청해야 합니다.

이제 SameSite=Lax가 기본값입니다. theme=bats만 설정하면 동일 사이트 컨텍스트에서만 전송됩니다.

기본 SameSite=Lax 값은 서드 파티 컨텍스트에서 쿠키가 전송되는 것을 중지합니다.

교차 사이트 또는 서드 파티 쿠키를 사용하려면 (삽입된 위젯에 테마를 표시해야 할 수 있음) 다음을 지정해야 합니다.

Set-Cookie: theme=bats; SameSite=None; Secure
명시적인 SameSite=None 값은 크로스 사이트 컨텍스트에서 전송할 쿠키를 표시합니다.

이렇게 하면 브라우저에 교차 사이트 컨텍스트에서 쿠키를 전송하겠다고 알리지만, 보안 연결로만 제한하려고 합니다.

더 맛있는 퍼스트 파티 쿠키

기본 레시피가 약간 개선되었지만 여전히 개선의 여지가 있습니다. 다음은 간단한 예시입니다.

Set-Cookie:  __Host-theme=bats;
  Secure;
  Path=/;
  HttpOnly;
  Max-Age=7776000;
  SameSite=Lax;

이렇게 하면 하나의 도메인으로 제한되고, 연결이 안전하며, JavaScript에서 액세스할 수 없고, 비활성화되기 전에 자동으로 만료되며, 동일 사이트 컨텍스트에서만 허용되는 퍼스트 파티 쿠키를 얻을 수 있습니다.

CHIPS를 사용하면 쿠키가 더 맛있어집니다.

웹의 마법 같은 측면 중 하나는 여러 사이트를 함께 구성할 수 있다는 점입니다. 다른 사이트에서 가장 좋은 호박 농장 투어 또는 트릭 오어 트릿 경로를 표시할 수 있는 지도 위젯을 만들고 싶다고 가정해 보겠습니다. 내 서비스는 쿠키를 사용하여 사용자가 경로를 따라 진행 상황을 저장할 수 있도록 합니다. 문제는 동일한 서드 파티 쿠키가 호박밭 사이트와 트릭 오어 트릿 사이트에서 전송된다는 점입니다. 사이트 간에 사용자를 추적하고 싶지 않지만 브라우저에서 하나의 쿠키 저장소만 사용합니다. 사용량을 구분할 방법이 없습니다.

SameSite=None이 적용된 크로스 사이트 쿠키가 여전히 모두 공유 쿠키 저장소에 저장됨

여기서 Cookies Having Independent Partitioned State(CHIPS) 제안이 유용합니다. 공유 쿠키 저장소 하나가 아닌 최상위 사이트별로 별도의 분할된 쿠키 저장소가 있습니다. 사이트는 쿠키에 Partitioned 속성을 사용하여 이를 선택합니다.

Set-Cookie: __Host-route=123;
  SameSite=None;
  Secure;
  Path=/;
  Partitioned;
쿠키의 Partitioned 속성은 최상위 사이트마다 별도의 쿠키 저장소를 만듭니다.

쿠키 통을 공유하지 않아도 되며, 모두 각자 쿠키를 가질 수 있습니다. 더 간편하고 안전하며 위생적입니다.

Chrome 109에서 독립 파티션화된 상태의 쿠키(CHIPS)에 관한 출시 인텐트를 전송했습니다. 즉, 12월에 베타에서 테스트할 수 있으며 2023년 1월에 안정화 버전에서 사용할 수 있습니다. 따라서 사이트의 쿠키 레시피를 개선하기 위한 새해 목표를 세우고 있다면 교차 사이트 쿠키에 CHIPS를 적용해 볼 수 있는지 살펴보세요.

퍼스트 파티 세트를 사용하여 파티에 쿠키 초대

개발자 의견과 관련하여 많은 개발자가 관리하는 사이트 간에 서비스를 공유하고 사이트 전반에서 쿠키를 사용하고 싶지만 실제 서드 파티 컨텍스트에서는 쿠키가 전송되지 않도록 하려는 경우가 있다고 분명히 밝혔습니다. 예를 들어 pretty-pumpkins.compretty-pumpkins.co.uk가 있을 수 있습니다. 이러한 사이트에서 작동하는 쿠키 기반 SSO 시스템이 있을 수 있습니다. CHIPS는 두 사이트에 모두 로그인해야 하므로 작동하지 않습니다. 관련 사이트에 동일한 쿠키가 있어야 합니다.

Google에서는 이를 가능케 하기 위해 퍼스트 파티 세트 제안서를 준비하고 있습니다. 출처 시범 버전 1회와 다양한 커뮤니티 토론을 거쳐 다음을 목표로 하는 최신 버전을 출시하게 되었습니다.

  • 조직이 서로 같은 당사자여야 하는 사이트 그룹을 정의할 수 있는 방법을 제공합니다.
  • Storage Access API를 활용하여 해당 퍼스트 파티 세트 내의 크로스 사이트 쿠키에 대한 액세스를 요청합니다.
퍼스트 파티 세트는 관련 사이트 간에만 공유 쿠키 저장소를 허용합니다.

이러한 쿠키는 아직 오븐에서 굽고 있지만 테스트할 것이 더 있는 경우 퍼스트 파티 세트 개발자 가이드를 확인하거나, 토론에 참여하려면 WICG/first-party-sets 제안서를 살펴보세요.

쿠키가 상하지 않도록 하세요.

Google의 목표는 2024년 중반부터 Chrome에서 서드 파티 쿠키 지원을 단계적으로 중단하는 것입니다. 아직 준비할 시간은 있지만 지금부터 계획을 세워야 합니다.

  1. SameSite=None를 사용하여 코드에서 쿠키를 감사합니다. 업데이트가 필요한 쿠키입니다.
  2. 서드 파티 쿠키가 없는 경우 동일 사이트 쿠키가 최적의 퍼스트 파티 쿠키 레시피를 사용하고 있는지 확인하세요.
  3. 이러한 쿠키를 완전히 포함된 삽입된 컨텍스트에서 사용하는 경우 CHIPS 제안서를 조사하고 테스트합니다.
  4. 하나의 응집된 그룹을 형성하는 여러 사이트에 이러한 쿠키가 필요한 경우 퍼스트 파티 세트 제안서를 살펴보세요.
  5. 이 두 가지 옵션 중 어느 것에도 해당하지 않는 경우 교차 사이트 추적을 사용하지 않는 개별 사용 사례를 위한 맞춤 API를 개발하는 다른 개인 정보 보호 샌드박스 제안서를 살펴보아야 합니다.

이는 간단한 개요일 뿐이며 작업이 진행되면 더 많은 뉴스와 안내를 계속 공유할 예정입니다. 질문이 있거나 문제가 있거나 직접 수행한 작업의 결과를 공유하고 싶은 경우 다양한 방법으로 문의하실 수 있습니다.

쿠키는 맛있지만 한 번에 몇 개만 먹고 다른 사람의 쿠키를 훔치지 마세요.