Fortschritte bei der Privacy Sandbox (Dezember 2021)

Willkommen bei der abschließenden Ausgabe von „Progress in the Privacy Sandbox“ 2021. Darin zeigen wir euch die Meilensteine auf dem Weg zur schrittweisen Einstellung von Drittanbieter-Cookies in Chrome und zur Verbesserung des Datenschutzes im Web. Normalerweise geben wir einen Überblick über Aktualisierungen des Privacy Sandbox-Zeitplans sowie Neuigkeiten aus dem gesamten Projekt. Im Dezember war jedoch ein ruhiger Monat. Stattdessen schauen wir uns einige der Aktivitäten des Jahres 2021 an und geben Ihnen einige mögliche Lösungen vor, die Sie jetzt im neuen Jahr treffen können.

Chromium-Entwicklungsprozess

Damit eine neue Webplattformfunktion in Chromium landen kann, muss sie den offenen Entwicklungsprozess des Projekts durchlaufen. 2021 erstellte das Privacy Sandbox-Team:

🥚Intent-to-Prototype 19
🧪Testabsicht7
🚀Versandabsicht 11
Quelle

Jeder Meilenstein ist auch eine Aufforderung für die gesamte Webwelt, einen Beitrag zu leisten.

Ein Intent to Prototype ist der erste Checkpoint, an dem Diskussionen und erste Experimente stattfinden. Das bedeutet, dass ein Vorschlag auf GitHub verfügbar ist. Dort können Sie eine Frage stellen, indem Sie ein Problem erstellen, oder an Diskussionen und Präsentationen in Standardgruppen wie dem W3C und IETF teilnehmen. Hier beginnt auch die Programmierung. Sie können also davon ausgehen, dass die Prototypfunktionalität hinter einem Feature-Flag für Entwicklertests zur Verfügung gestellt wird. Das erste Feedback ist entscheidend für die Validierung und Iteration von Angeboten.

Ein Intent to Experiment ist ein optionaler Schritt, wenn wir einen Ursprungstest anfordern möchten. Entwickler können sich für den Ursprungstest einer Funktion registrieren und sie dann in der Produktion testen. Es wird Test genannt, da wir bestimmte Aspekte der Funktion in einer realen Umgebung validieren möchten. Entwickler, die die Ergebnisse dieser Tests testen und teilen können, bieten wertvolles Feedback bei der Iteration und Weiterentwicklung der Funktion.

Ein Intent to Ship ist der letzte Meilenstein, der signalisiert, dass eine Funktion jetzt fertiggestellt und für die allgemeine Verfügbarkeit bereit ist. Nach der Genehmigung wird die Funktion in einen zukünftigen Release integriert und wird dann durch die Canary-, Beta- und stabilen Versionen weiterentwickelt. Sie müssen Ihre Websites unbedingt mit der Canary-Version und der Betaversion von Chrome testen, um Fehler zu erkennen und zu melden, bevor eine Funktion zur stabilen Version wechselt.

Vorschläge

Für jedes Privacy Sandbox-Angebot gibt es ein zugehöriges GitHub-Repository. Ein Repository hostet eine erklärende Erklärung, in der die Gesamtfunktionalität zusammengefasst wird, sowie eine detaillierte Spezifikation für die Implementierung durch Browser und Beiträge aus der gesamten Webumgebung in Form von Problemen und Pull-Anfragen.

In 14 Privacy Sandbox-Repositories hatten wir:

💬545Probleme erstellt
250Probleme behoben
🛠️261Pull-Anfragen erstellt
223Pull-Anfragen zusammengeführt
Quelle

Die Erklärungen und Spezifikationen richten sich oft an eine Zielgruppe, die bereits mit Standards und der Browserentwicklung vertraut ist. Dies kann schwierig sein, wenn Sie damit nicht vertraut sind. Das Ziel einer erklärenden Erklärung besteht jedoch darin, etwas zu erklären. Wenn Punkte unklar sind oder nicht behandelt werden, sollten Sie ein Problem melden, damit wir die Erläuterung aktualisieren und klären können.

Auflösungen

User-Agent Frühjahrsputz

Da wir bis zum neuen Jahr abwärts gezählt haben, zählen wir auch auf Chrome 100 und die stufenweise Reduzierung des User-Agent-Strings aufwärts. Dies ist ein guter Anreiz, um zu prüfen, ob der User-Agent-String in Ihrem Code von einer dieser Änderungen betroffen ist.

So finden Sie diese Gebiete:

  1. Suche in deinem JavaScript-Code nach navigator.userAgent oder greife in deinem Servercode auf den User-Agent-Header zu.
  2. Prüfen Sie beim Parsen des Strings, ob Annahmen zu einer zweistelligen Version vorliegen. Ein regulärer Ausdruck, der \d\d oder \d{2} angibt, sollte beispielsweise durch \d+ ersetzt werden.
  3. Überprüfen Sie die Verwendung des Strings in Bereichen, in denen Sie auf Folgendes angewiesen sind:
    • Plattformversion (Betriebssystemversion)
    • vollständige Chrome-Build-Version
    • Name des Mobilgeräts
  4. Dies sind die Werte, die in Zukunft auf feste Strings reduziert werden. Wenn Sie Zugriff auf diese Werte benötigen, migrieren Sie zu User-Agent-Client-Hinweisen.

Es gibt ein Update im Dezember, das wir erwähnen müssen. Wenn Sie User-Agent-Client-Hints verwenden, haben wir den Intent to Ship-Vorgang, um die Delegation von Hinweisen in HTML an andere Ursprünge in HTML zu aktivieren, über ein <meta>-Tag gesendet. Beispiel:

<meta name="accept-ch" content="sec-ch-ua-model=( https://foo.bar )">

Wenn Sie in der Frühjahrsputz-Stimmung sind, können Sie auch Alternativen zur Verwendung des User-Agents insgesamt in Betracht ziehen. Wenn Sie den String zur Erkennung von Mobilgeräten verwenden, überlegen Sie, ob Sie diesen durch ein responsives Design ersetzen können. Wenn Sie den Browsernamen und die Browserversion auf Featureunterstützung prüfen, prüfen Sie, ob Sie stattdessen die Featureerkennung verwenden können.

Wie bei allen vom Client bereitgestellten Werten kann der User-Agent nicht garantiert werden, dass er korrekt ist oder überhaupt angegeben wird. Ein Beispiel für dieses Risiko ist die aktuelle Log4j-Sicherheitslücke "Log4shell". Ein Client, dessen User-Agent-String einen Wert wie ${jndi:ldap://example.com/file} enthält, kann unter Umständen erreichen, dass eine Website diesen Wert auf dem Server aktiv parst.

Eine weitere traditionelle Aktivität im neuen Jahr besteht darin, sich über eine gesunde Anzahl von Keksen mit hochwertigen Zutaten zu freuen. Bei der schrittweisen Einstellung von Drittanbieter-Cookies solltest du immer wissen, welche Cookies deiner Website betroffen sind. 2020 gab es einen Vorsprung, da es notwendig wurde, alle Cookies für die website- oder Drittanbieternutzung mit SameSite=None zu markieren.

Alle Cookies, bei denen Sie das Attribut SameSite auf None gesetzt haben, müssen aktualisiert werden.

Im Moment gibt es drei mögliche Vorgehensweisen:

  1. Wenn das Cookie nur in einer 1:1-Beziehung zur Website der obersten Ebene erforderlich ist, verfolgen Sie den Fortschritt des CHIPS-Angebots. Dies bedeutet, dass dem Cookie das Attribut Partitioned hinzugefügt wird.
  2. Wenn das Cookie in einem websiteübergreifenden Kontext verwendet wird, aber nur auf Websites, die Ihnen gehören und die Sie betreiben, kann es ein Kandidat für eigene Sets sein. Dazu müssen die Websites im Satz definiert und dem Cookie das Attribut SameParty hinzugefügt werden.
  3. Wenn das Cookie dazu verwendet wird, einen gemeinsamen Wert über mehrere Websites hinweg bereitzustellen, sollten Sie die Privacy Sandbox-Vorschläge für eine alternative Lösung untersuchen, bei der kein websiteübergreifendes Tracking erforderlich ist.

Wenn Sie besonders gesundheitsbewusst sind, ist dies auch ein guter Zeitpunkt, um Ihre gesamte Cookie-Nutzung noch einmal zu überprüfen. Wir haben ein gutes Rezept, wie Sie auch Ihre eigenen Cookies verbessern können.

Feedback

Wir veröffentlichen diese monatlichen Updates und arbeiten kontinuierlich an der Privacy Sandbox als Ganzes. Dabei möchten wir sicherstellen, dass Entwickler die Informationen und den Support erhalten, den sie benötigen. Wenn du etwas verbessern kannst, das wir in dieser Reihe verbessern könnten, teile uns dies über @ChromiumDev auf Twitter mit. Ihr Feedback hilft uns dabei, das Format weiter zu verbessern.

Sieh dir die FAQs zur Privacy Sandbox an, die wir anhand der Probleme, die du an das Entwicklersupport-Repository sendest, weiter erweitern. Wenn Sie Fragen zu Tests oder zur Implementierung der Vorschläge haben, können Sie sich direkt an uns wenden.