Am Ursprungstest für den Zugriff auf Speicher ohne Cookies über die Storage Access API teilnehmen

Helen Cho
Helen Cho
Ari Chivukula
Ari Chivukula

Mit Chrome 115 wurden durch die Partitionierung in Drittanbieterkontexten Änderungen an Speicher-, Service Worker- und Kommunikations-APIs eingeführt. Die betroffenen APIs, die in Drittanbieterkontexten verwendet werden, sind nicht nur durch die Richtlinie für denselben Ursprung isoliert, sondern auch durch die Website des übergeordneten Kontexts.

Websites, die bisher keine Unterstützung für die Drittanbieter-Speicherpartitionierung hatten, können an einem Test zur Einstellung teilnehmen, um die Partition vorübergehend aufzulösen (die Isolation durch die Richtlinie für denselben Ursprung fortzusetzen, die Isolation durch die Top-Level-Website aufzuheben) und das bisherige Verhalten von Speicher-, Service Worker- und Kommunikations-APIs in Inhalten wiederherzustellen, die auf ihrer Website eingebettet sind. Dieser Test zur Einstellung läuft mit der Veröffentlichung von Chrome 127 am 3. September 2024 ab. Dies hat nichts mit dem Test zur Einstellung des Zugriffs auf Drittanbieter-Cookies zu tun: Er bezieht sich nur auf den Speicherzugriff.

Als langfristige Lösung zur Behebung bestimmter Anwendungsfälle, die durch Drittanbieter-Speicherpartitionierung ohne Cookies gestört werden, bietet Chrome Drittanbietern die Möglichkeit, Speicher-/Kommunikationszugriff (sowohl Cookies als auch Nicht-Cookies) über die Storage Access API (Versand ab Chrome 117) anzufordern. Mit dieser API können Drittanbieter bereits Zugriff auf Cookies anfordern.

Ab Chrome 120 steht dieser Vorschlag für Tests im Rahmen eines Ursprungstests zur Verfügung. Entwickler sollten an diesem Ursprungstest teilnehmen, um zu bewerten, wie die vorgeschlagene Lösung auf ihre Anwendungsfälle eingeht, und so dafür sorgen, dass sie auf den Einstellungstest vorbereitet sind.

Details zum Ursprungstest

Ab Chrome 120 unterstützt Chrome den Ursprungstest StorageAccessAPIBeyondCookies, um die vorgeschlagene Erweiterung der Storage Access API (abwärtskompatibel) zu aktivieren und den Zugriff auf nicht partitionierte Speicher (Cookies und Nicht-Cookies) in Drittanbieterkontexten zu ermöglichen.

Mechanik

Die API kann wie folgt verwendet werden (JavaScript wird in einem eingebetteten iFrame ausgeführt):

// Request a new storage handle via rSA (this should prompt the user)
const handle = await document.requestStorageAccess({all: true});
// Write some 1P context sessionStorage
handle.sessionStorage.setItem('userid', '1234');
// Write some 1P context localStorage
handle.localStorage.setItem('preference', 'A');
// Open or create an indexedDB that is shared with the 1P context
const messageDB = handle.indexedDB.open('messages');
// Use locks shared with the 1P context
await handle.locks.request('example', ...);

Wenn Sie nur einen bestimmten API-Zugriff statt Zugriff auf all wünschen, können Sie genau die Namen der benötigten API-Handles übergeben. Sie könnten beispielsweise {sessionStorage: true} übergeben, um nur Zugriff auf Sitzungsspeicher zu erhalten, oder {indexedDB: true, locks:true}, um Zugriff auf IndexedDB und Web Locks zu erhalten.

Abgesehen von dieser zusätzlichen Erweiterung entspricht der Zugriff auf Nicht-Cookie-Speicher den aktuellen Anforderungen für den Cookie-Zugriff über die Storage Access API. In Chrome wird beispielsweise keine Aufforderung angezeigt, wenn die Quellen zur selben Gruppe ähnlicher Websites gehören. Ursprünge, die nicht Teil derselben RWS sind, unterliegen den eingeblendeten Anforderungen der Storage Access API in Chrome.

Dauer

Der Ursprungstest ist von Chrome 120 bis Chrome 125 (bzw. nach dem 6. August 2024 für jeden Meilenstein) verfügbar.

Umfang

In Chrome 120 sind nur DOM-Speicher (Sitzungs- und lokaler Speicher), indexierte Datenbanken und Web Locks verfügbar.

In Chrome 121 wurden „Cache-Speicher“, „Privates Origin File System“, „Kontingente“, „Blob-Speicher“ und „Broadcast Channel“ hinzugefügt.

Gemeinsam genutzte Worker und die Kontrolle über die Verwendung von Cookies wurden in Chrome 123 hinzugefügt.

Dedizierte Worker übernehmen den Zugriff auf nicht partitionierte Cookies, wenn requestStorageAccess aufgerufen wurde, bevor der Worker mit Chrome 120 erstellt wurde. Dazu ist kein Zugriff auf die Storage Access API erforderlich.

Mitmachen

  1. Bewerten Sie, wie Sie die Speicherung von Cookies und anderen Cookies in Drittanbieterkontexten verwenden. Anhand der Anwendungsbeispiele können Sie herausfinden, ob dieses Angebot Ihren Anforderungen entspricht.
  2. Starten Sie Chrome-Version 120 (oder höher) und achten Sie darauf, dass das Flag test-third-party-cookie-phaseout aktiviert ist.
  3. Wenn Sie die Funktion lokal testen möchten, ohne vorher ein Token für den Ursprungstest einzurichten, können Sie #enable-experimental-web-platform-features in Ihrem Browser aktivieren.
    1. Nachdem Sie die lokalen Tests durchgeführt haben, können Sie sich für den Ursprungstest StorageAccessAPIBeyondCookies register und ein Token für Ihre Domains anfordern. Eine ausführliche Anleitung finden Sie unter Erste Schritte mit Ursprungstests. Im Leitfaden zur Fehlerbehebung bei Chrome-Ursprungstests finden Sie eine vollständige Checkliste für die korrekte Konfiguration Ihres Tokens.
    2. Betten Sie das Token des Ursprungstests in den iFrame ein, den Sie mit dem Storage Access API-Handle verwenden müssen. Verwenden Sie dazu einen HTTP-Header, ein HTML-Meta-Tag oder programmatisch. Beachten Sie, dass das Token von jedem Frame eingebettet werden muss, der diese API verwenden möchte. Durch die Einbettung in den übergeordneten Frame wird die API nicht in untergeordneten Frames aktiviert.
  4. Rufen Sie document.requestStorageAccess(...) auf, um das Storage Access API-Handle im websiteübergreifenden iFrame abzurufen. Weitere Informationen zu den Anforderungen für den erfolgreichen Aufruf finden Sie in der Dokumentation zur Storage Access API.
  5. Migrieren Sie den Speicher in Ihrem iFrame, um den Alias der Storage Access API zu verwenden, falls er verfügbar ist. Aufrufe von window.sessionStorage.setItem(...) werden beispielsweise zu handle.sessionStorage.setItem(...).
  6. Öffnen Sie Ihre Website und prüfen Sie, ob der Handle für den Speicherzugriff wie vorgesehen funktioniert.
  7. Wenn Sie nicht mehr am Ursprungstest teilnehmen möchten, entfernen Sie das Token, das Sie in Schritt 3 hinzugefügt haben.
  8. Senden Sie Feedback oder melden Sie Probleme im GitHub-Repository für die Storage Access API ohne Cookie-Speicher.

Demo: Storage Access API für den Zugriff auf nicht partitionierte lokalen Speicher verwenden

Die folgende Demo zeigt, wie Sie mithilfe der Storage Access API über einen Drittanbieter-iFrame auf nicht partitionierte Übertragungskanäle zugreifen:

https://saa-beyond-cookies.glitch.me/

Für die Demo ist Chrome 121 oder höher erforderlich und das Flag test-third-party-cookie-phaseout muss aktiviert sein.

Weitere Informationen