Bei der Umstellung Ihrer Website auf partitionierte Cookies kann es zu unerwartetem Verhalten kommen, wenn für einen Client sowohl ein partitioniertes als auch ein nicht partitioniertes Cookie mit demselben Namen vorhanden ist.
Durch das Festlegen eines partitionierten Cookies wird ein vorhandenes nicht partitioniertes Cookie mit demselben Namen weder überschrieben noch ersetzt. Beide sind vorhanden, solange Drittanbieter-Cookies aktiviert sind, aber in separaten Cookie-JAR-Dateien. Wenn Drittanbieter-Cookies deaktiviert sind, werden nur partitionierte Cookies akzeptiert. Sind beide Cookies vorhanden, kann programmatisch nicht ermittelt werden, welches partitionierte und welches nicht, und dies kann zu unerwartetem Verhalten führen.
Es gibt zwei Möglichkeiten, dieses Problem zu beheben: 1. Das zu ersetzende Cookie läuft ab. 2. Cookies umbenennen
Wichtige Überlegungen
Beachten Sie bei der Umstellung auf partitionierte Cookies Folgendes:
- Es ist nicht möglich, programmatisch festzustellen, ob ein Cookie partitioniert oder nicht partitioniert ist. Sie können den partitionierten Status eines Cookies jedoch in den Chrome-Entwicklertools bestimmen.
- Partitionierte Cookies überschreiben keine nicht partitionierten Cookies. Zwei genau identische Cookies, die also dieselben Attribute wie Name, Domain oder Pfad haben, werden als separate Cookies behandelt, wenn nur eines das Attribut
Partitioned
hat. - In diesem Fall sollten im selben Netzwerkaufruf sowohl ein partitioniertes als auch ein nicht partitioniertes Cookie mit demselben Namen zurückgegeben werden.
Die zu ersetzenden Cookies ablaufen lassen
Wenn Ihre Website oder Ihr Dienst keine Namensänderung unterstützt, können Sie ein neues partitioniertes Cookie erstellen, während das vorhandene nicht partitionierte Cookie abläuft. Sie können zwar nicht feststellen, ob ein Cookie partitioniert ist oder nicht, aber Set-Cookie
-Header ohne Partitioned
-Attribut wirken sich nicht auf nicht partitionierte Cookies aus.
Das folgende Beispiel zeigt, wie das nicht partitionierte Cookie namens example
abläuft und partitionierte Cookies unverändert bleiben, auch wenn sie denselben Namen haben. Ein neues partitioniertes Cookie mit dem Namen cookieName
wird hinzugefügt oder aktualisiert, wenn es bereits vorhanden ist.
Set-Cookie: example=-1;HttpOnly;SameSite=None;Secure;Max-Age:0
Set-Cookie: cookieName=value;Secure;SameSite=None;MaxAge=34560000;Partitioned
Cookies umbenennen
Die zuverlässigste Methode für einen nahtlosen Übergang ist die Verwendung verschiedener Namen für partitionierte und nicht partitionierte Cookies. Wenn Sie beispielsweise ein nicht partitioniertes Cookie namens „example“ haben, können Sie es in ein partitioniertes Cookie migrieren.
Set-Cookie: example-partitioned=value;Secure;SameSite=None;MaxAge=34560000;Partitioned
Da die Ablaufzeit des Cookies nicht programmatisch offengelegt wird, gibt es keine Möglichkeit, die Ablaufzeit des neuen Cookies mit dem Ablauf des nicht partitionierten Cookies abzugleichen. Es kann pragmatisch sein, den Wert des Cookies während dieses Vorgangs zu aktualisieren.
Sowohl partitionierte als auch nicht partitionierte Cookies beibehalten
Während der Übergangsphase sollten Sie zwei separate synchronisierte Cookies beibehalten – eines, das partitioniert ist, und eines, das nicht ist. Beispiel: Sie haben sowohl das auth
- als auch das auth-partitioned
-Cookie, wobei Letzteres mit dem Attribut Partitioned
festgelegt wurde.
Bei jeder Aktualisierung des Werts sollten Sie versuchen, beide Cookies zu setzen.
- Auf Clients, die Drittanbieter-Cookies blockieren, aber CHIPS noch nicht unterstützen, werden keine Cookies akzeptiert.
- Bei Clients, die Drittanbieter-Cookies blockieren und CHIPS unterstützen, wird das
auth
-Cookie abgelehnt, dasauth-partitioned
-Cookie jedoch akzeptiert. - Auf Clients, die Drittanbieter-Cookies nicht blockieren, unabhängig davon, ob sie CHIPS unterstützen, werden sowohl
auth
als auchauth-partitioned
akzeptiert.
Wenn Ihre Anwendung das Authentifizierungscookie lesen muss, sollten Sie zuerst nach auth-partitioned
suchen. Falls Sie die Änderung aber vorübergehend rückgängig machen müssen, können Sie auf das Cookie auth
zurückgreifen.
Sobald Sie festgestellt haben, dass die Cookies der Mehrheit der Nutzer aktualisiert wurden, kann das Cookie auth-partitioned
deaktiviert und das Attribut „Partitioned“ zum regulären Authentifizierungscookie hinzugefügt werden.