Von nicht partitionierten auf partitionierte Cookies umstellen

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:

  1. 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.
  2. 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.
  3. 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, das auth-partitioned-Cookie jedoch akzeptiert.
  • Auf Clients, die Drittanbieter-Cookies nicht blockieren, unabhängig davon, ob sie CHIPS unterstützen, werden sowohl auth als auch auth-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.