사이트를 파티션을 나눈 쿠키로 전환할 때 특정 클라이언트에 동일한 이름의 파티션을 나눈 쿠키와 파티션을 나누지 않은 쿠키가 모두 존재하면 예기치 않은 동작이 발생할 수 있습니다.
파티션을 나눈 쿠키를 설정해도 파티션을 나누지 않은 기존 쿠키가 동일한 이름으로 재정의되거나 대체되지 않습니다. 서드 파티 쿠키가 사용 설정되어 있으면 둘 다 존재하지만 별도의 쿠키 단지에 저장됩니다. 서드 파티 쿠키가 사용 중지되면 파티션을 나눈 쿠키만 허용됩니다. 두 쿠키가 모두 존재하면 어떤 쿠키가 파티션이 나뉘어 있는지 프로그래매틱 방식으로 구분할 수 없으며 이로 인해 예기치 않은 동작이 발생할 수 있습니다.
이 문제를 해결하는 방법에는 두 가지가 있습니다. 1. 대체할 쿠키 만료 2. 쿠키 이름 변경
주요 고려사항
파티션을 나눈 쿠키로 전환할 때는 다음 사항에 유의하세요.
- 쿠키의 파티션이 나눠졌는지 여부를 프로그래매틱 방식으로 확인할 수 있는 방법은 없습니다. 하지만 Chrome DevTools에서 쿠키의 파티션을 나눈 상태를 확인할 수 있습니다.
- 파티션을 나눈 쿠키는 파티션을 나누지 않은 쿠키를 덮어쓰지 않습니다. 즉, 이름, 도메인, 경로와 같은 속성이 동일한 두 쿠키는
하나만
Partitioned
속성이 있는 경우 별도의 쿠키로 처리됩니다. - 동일한 네트워크 호출에서 파티션을 나눈 쿠키와 동일한 이름의 파티션을 나누지 않은 쿠키가 모두 반환되는 상황을 피하는 것이 좋습니다.
대체할 쿠키 만료
사이트 또는 서비스에서 이름 변경을 수용할 수 없는 경우 파티션을 나누지 않은 기존 쿠키를 만료하면서
파티션을 나눈 새 쿠키를 만들 수 있습니다. 쿠키의 파티셔닝 여부를 확인할 방법은 없지만 Partitioned
속성이 없는 Set-Cookie
헤더는 파티셔닝되지 않은 쿠키에 영향을 미치지 않습니다.
다음 예시는 이름이 같더라도 파티션을 나누지 않은 쿠키(example
)는 만료하고 파티션을 나눈 쿠키는 영향을 받지 않은 상태로 두는 방법을 보여줍니다. 파티션을 나눈 새 쿠키(cookieName
)가
있는 경우 추가되거나 업데이트됩니다.
Set-Cookie: example=-1;HttpOnly;SameSite=None;Secure;Max-Age:0
Set-Cookie: cookieName=value;Secure;SameSite=None;MaxAge=34560000;Partitioned
쿠키 이름 변경
전환이 원활하게 이루어지도록 하는 가장 효과적인 방법은 파티션을 나눈 쿠키와 파티션을 나누지 않은 쿠키에 다��� 이름�� ���용��는 것입니다. 예를 들어 'example'이라는 이름의 파티션을 나누지 않은 쿠키가 있는 경우 해당 쿠키를 파티션을 나눈 쿠키로 이전할 수 있습니다.
Set-Cookie: example-partitioned=value;Secure;SameSite=None;MaxAge=34560000;Partitioned
쿠키 만료는 프로그래매틱 방식으로 노출되지 않으므로 새 쿠키의 만료 시간을 파티션을 나누지 않은 쿠키의 만료 시간과 일치하도록 설정할 방법이 없습니다. 이 과정에서 쿠키 값을 새로고침하는 것이 실용적일 수 있습니다.
파티션을 나눈 쿠키와 파티션을 나누지 않은 쿠키 모두 유지
전환 기간에는 두 개의 동기화된 쿠키, 즉 파티션을 나눈 쿠키와 그렇지 않은 쿠키를 유지하는 것이 좋습니다. 예를 들어 auth
쿠키와 auth-partitioned
쿠키가 모두 있을 수 있으며, 후자는 Partitioned
속성을 사용하여 설정됩니다.
값이 업데이트될 때마다 두 쿠키를 모두 설정해야 합니다.
- 서드 파티 쿠키를 차단하지만 아직 CHIPS를 지원하지 않는 클라이언트: 두 쿠키 모두 허용되지 않습니다.
- 서드 파티 쿠키를 차단하고 CHIPS를 지원하는 클라이언트:
auth
쿠키는 거부되지만auth-partitioned
쿠키는 허용됩니다. - 서드 파티 쿠키를 차단하지 않는 클라이언트에서 CHIPS 지원 여부와 관계없이
auth
및auth-partitioned
가 모두 허용됩니다.
애플리케이션에서 인증 쿠키를 읽어야 하는 경우 먼저 auth-partitioned
를 찾아야 합니다. 하지만 변경사항을 일시적으로 롤백해야 하는 경우 auth
쿠키를 대신 찾아볼 수 있습니다.
대다수의 사용자가 쿠키를 새로고침한 것으로 확인되면 auth-partitioned
쿠키가 지원 중단되고 Partitioned 속성이 일반 인증 쿠키에 추가될 수 있습니다.