Przejście z niepartycjonowanych plików cookie na partycjonowane pliki cookie

Gdy przechodzisz w witrynie na partycjonowane pliki cookie, możesz zauważyć nieoczekiwane zachowanie, jeśli w przypadku dowolnego klienta występuje zarówno partycjonowany, jak i nieparty plik cookie o tych samych nazwach.

Ustawienie partycjonowanego pliku cookie nie zastąpi ani nie zastąpi dotychczasowego niepartycjonowanego pliku cookie o tej samej nazwie. Oba będą istnieć, dopóki włączone będą pliki cookie innych firm, ale w osobnych magazynach plików cookie. Po wyłączeniu plików cookie innych firm akceptowane będą tylko pliki partycjonowane. Jeśli występują oba pliki cookie, nie da się automatycznie określić, który z nich jest partycjonowany, a który nie. Może to prowadzić do nieoczekiwanego zachowania.

Możesz to zrobić na 2 sposoby: 1. Wygaś plik cookie, który zastępujesz. 2. Zmienianie nazw plików cookie

Najważniejsze kwestie

Podczas przechodzenia na partycjonowane pliki cookie pamiętaj o tych kwestiach:

  1. Nie można automatycznie określić, czy plik cookie jest partycjonowany czy nie. Można jednak określić stan partycjonowania pliku cookie w Narzędziach deweloperskich w Chrome.
  2. Partycjonowane pliki cookie nie zastępują niepartycjonowanych plików cookie. Jeśli tylko jeden z nich ma atrybut Partitioned, 2 pliki cookie, które są dokładnie takie same (mają takie same atrybuty jak nazwa, domena czy ścieżka).
  3. Najlepiej uniknąć sytuacji, w której w tym samym wywołaniu sieci będą zwracane zarówno partycjonowane pliki cookie, jak i niepartycjonowane pliki cookie o tej samej nazwie.

Wygasanie zastępowanych plików cookie

Jeśli w Twojej witrynie lub usłudze nie można zmienić nazwy, możesz utworzyć nowy partycjonowany plik cookie z wygaśnięciem istniejącego niepartycjonowanego pliku cookie. Nie można sprawdzić, czy plik cookie jest partycjonowany, ale nagłówki Set-Cookie bez atrybutu Partitioned nie mają wpływu na pliki cookie, które nie są partycjonowane.

Z poniższego przykładu dowiesz się, jak wygasnąć niepartycjonowany plik cookie o nazwie example i pozostawić wszystkie partycjonowane pliki cookie bez wpływu na działanie, nawet jeśli mają taką samą nazwę. Nowy partycjonowany plik cookie o nazwie cookieName zostanie dodany lub zaktualizowany, jeśli już istnieje.

Set-Cookie: example=-1;HttpOnly;SameSite=None;Secure;Max-Age:0
Set-Cookie: cookieName=value;Secure;SameSite=None;MaxAge=34560000;Partitioned

Zmienianie nazw plików cookie

Najbezpieczniejszym sposobem zapewnienia płynnego przejścia jest używanie różnych nazw partycjonowanych i bez partycjonowanych plików cookie. Jeśli na przykład masz niepartycjonowany plik cookie o nazwie „example”, możesz go przenieść do partycjonowanego pliku cookie.

Set-Cookie: example-partitioned=value;Secure;SameSite=None;MaxAge=34560000;Partitioned

Okres ważności pliku cookie nie jest ujawniany automatycznie, dlatego nie można ustawić wygaśnięcia nowego pliku cookie, aby zbiegł się on z datą wygaśnięcia niepartycjonowanego pliku cookie. Odświeżanie wartości pliku cookie podczas tego procesu może być pragmatyczne.

Przechowywanie partycjonowanych i niepartycjonowanych plików cookie

W okresie przejściowym staraj się utrzymywać 2 oddzielne zsynchronizowane pliki cookie: jeden jest partycjonowany, a drugi nie. Możesz na przykład mieć zarówno pliki cookie auth, jak i auth-partitioned, przy czym ten ostatni został skonfigurowany z atrybutem Partitioned.

Przy każdej zmianie wartości należy spróbować ustawić oba pliki cookie.

  • W przypadku klientów, które blokują pliki cookie innych firm, ale nie obsługują jeszcze CHIPS, pliki cookie nie będą akceptowane.
  • W przypadku klientów, którzy blokują pliki cookie innych firm i obsługują CHIPS, plik cookie auth zostanie odrzucony, ale plik cookie auth-partitioned zostanie zaakceptowany.
  • W przypadku klientów, które nie blokują plików cookie innych firm, niezależnie od tego, czy obsługują CHIPS: akceptowane są zarówno elementy auth, jak i auth-partitioned.

Gdy aplikacja musi odczytać plik cookie uwierzytelniania, najpierw poszukaj elementu auth-partitioned. Jeśli jednak musisz tymczasowo cofnąć tę zmianę, możesz wrócić do wyszukiwania pliku cookie auth.

Gdy stwierdzisz, że pliki cookie większości użytkowników zostały odświeżone, możesz wycofać plik cookie auth-partitioned, a atrybut partycjonowany – dodać do zwykłego pliku cookie uwierzytelniania.