Ursprungstest zur Reduzierung des User-Agents

Die User-Agent-Reduktion ist ein Versuch, passive Fingerprinting-Oberflächen zu reduzieren. Dazu werden die Informationen im User-Agent-String (UA) nur auf die Marke und die signifikante Version des Browsers, seine Unterscheidung zwischen Computern und Mobilgeräten und der Plattform beschränkt, auf der er ausgeführt wird. Derzeit wird der UA-String bei jeder HTTP-Anfrage freigegeben und in JavaScript für alle Ressourcen bereitgestellt, die vom Browser geladen werden. Sie enthält wichtige Informationen zum Browser, zur Plattform, auf der es ausgeführt wird, und zu seinen Funktionen. User-Agent-Client-Hints (UA-CH) können dieselben Informationen wie der vollständige UA-String enthalten, während Websites nur die UA-Informationen anfordern können, die sie benötigen.

Ab der Beta-Version von Chrome 95 öffnen wir den Ursprungstest für die Reduzierung des User-Agents, damit Websites jetzt den reduzierten UA-String erhalten können. Dadurch können Websites Probleme erkennen und beheben, bevor das reduzierte UA zum Standardverhalten in Chrome wird (die Reduzierung soll im zweiten Quartal 2022 beginnen). Wenn Sie den Ursprungstest vor dem Veröffentlichungsdatum für Chrome 95 (aktuell für den 19. Oktober 2021) an 95 Betanutzern testen möchten, bevor er für eine stabile Zielgruppe eingeführt wird, müssen Sie ihn aktivieren und testen.

Im Folgenden finden Sie einen Überblick über den Ursprungstest und was Sie erwartet. Wie immer freuen wir uns über Feedback oder Probleme während des Tests im GitHub-Repository zur UA-Reduction.

Was ist der User-Agent?

Der User-Agent-String (UA) wird bei jeder HTTP-Anfrage verwendet und in JavaScript für alle Ressourcen bereitgestellt, die vom Browser geladen werden. Derzeit enthält es wichtige Informationen zum Browser und zur Plattform, auf der es ausgeführt wird.

Warum wird der User-Agent reduziert?

Die User-Agent-Reduction wurde zum ersten Mal im Januar 2020 angekündigt und zielt darauf ab, die passiven Fingerprinting-Oberflächen im Chrome-Browser zu reduzieren. Wenn die Informationen im UA-String nur auf die Marke und die signifikante Version des Browsers, seine Unterscheidung zwischen Computern und Mobilgeräten und der Plattform beschränkt werden, auf der er ausgeführt wird, wird es schwieriger, einzelne Nutzer zu identifizieren.

Was bedeutet das für Webentwickler?

Websites sollten sich darauf vorbereiten, reduzierte UA-Strings zu erhalten, und die Teilnahme am Ursprungstest in Betracht ziehen (siehe unten). Die reduzierten User-Agent-Werte werden hier angezeigt:

  • Der User-Agent-HTTP-Anfrageheader
  • Der JavaScript-Getter navigator.userAgent
  • Der JavaScript-Getter navigator.platform
  • Der JavaScript-Getter navigator.appVersion

Um mehr Clientinformationen zu erhalten, als vom reduzierten User-Agent freigegeben werden, müssen Websites zur neuen User-Agent Client Hints API migrieren. Weitere Informationen zu Migrationsstrategien finden Sie unter Zu User-Agent-Clienthinweisen migrieren.

iOS und WebView sind in den Plänen zur Reduzierung des User-Agents derzeit nicht enthalten. Daher erhalten diese Plattformen weiterhin den vollständigen User-Agent-String. Der Hauptgrund ist, dass auf diesen Plattformen noch keine User-Agent-Client-Hinweise implementiert sind.

Wie funktioniert dieser Ursprungstest?

Dieser Ursprungstest unterscheidet sich etwas von einem Standard-Ursprungstest. Standard-Ursprungstests können nur das Verhalten in der Antwort steuern (z. B. den Zugriff auf eine API im JavaScript der Antwort steuern). In diesem Test möchten wir nicht nur den in den JavaScript APIs bereitgestellten UA-String ändern, sondern auch den User-Agent-Header, der in der HTTP-Anfrage gesendet wurde.

Dazu definieren wir einen temporären Clienthinweis mit dem Namen Sec-CH-UA-Reduced, der in einer Anfrage angibt, dass der User-Agent-Headerwert den reduzierten UA-String enthält. Der Sec-CH-UA-Reduced-Clienthinweis wird nur dann (zusammen mit dem reduzierten UA-String) gesendet, wenn das Token des Ursprungstests gültig ist und der Clienthinweis von Sec-CH-UA-Reduced nach Ablauf des Ursprungstests nicht mehr funktioniert. Die erste Navigationsanfrage erhält trotzdem den nicht reduzierten User-Agent-String, es sei denn, Sie legen Critical-CH header fest.

Anfragen von Unterressourcen an denselben Ursprung senden automatisch denselben User-Agent-String wie die übergeordnete Anfrage. Bei Unterressourcenanfragen an Drittanbieterquellen wird derselbe User-Agent-String wie bei der Anfrage der obersten Ebene gesendet, einschließlich des reduzierten UA-Strings, sofern das Token des Ursprungstests gültig ist, sofern die Berechtigungsrichtlinie dies zulässt.

Wie nehme ich am Ursprungstest zur Reduzierung des User-Agents teil?

  1. Wenn Sie sich für den Ursprungstest registrieren und ein Token für Ihre Domains erhalten möchten, rufen Sie die Seite Test zur Reduzierung des User-Agents auf.

  2. Aktualisieren Sie Ihre HTTP-Antwortheader:

    1. Fügen Sie Ihrem HTTP-Antwortheader Origin-Trial: <ORIGIN TRIAL TOKEN> hinzu, wobei <ORIGIN TRIAL TOKEN> das Token enthält, das Sie bei der Registrierung für den Ursprungstest erhalten haben.
    2. Fügen Sie Ihrem HTTP-Antwortheader Accept-CH: Sec-CH-UA-Reduced hinzu.
    3. Wenn Sie Accept-CH festlegen, wird der reduzierte User-Agent-String nur bei nachfolgenden Anfragen an den Ursprung gesendet. Um die erste Navigationsanfrage mit dem reduzierten User-Agent-String noch einmal zu senden, fügen Sie Ihrem HTTP-Antwortheader zusätzlich zu den Headern Accept-CH und Origin-Trial Critical-CH: Sec-CH-UA-Reduced hinzu.
    4. Hinweis: Wenn die Antwortheader ein gültiges Origin-Trial-Token und Accept-CH: Sec-CH-UA-Reduced enthalten, senden alle Unterressourcenanfragen (z. B. für Bilder oder Stylesheets) und Subnavigationen (z. B. iFrames) den reduzierten UA-String, auch wenn die Quellen dieser Anfragen nicht im Ursprungstest registriert sind.
  3. Laden Sie Ihre Website in Chrome M95 (oder höher) und empfangen Sie den reduzierten UA-String.

  4. Sende Probleme oder Feedback an das GitHub-Repository für die UA-Reduktion.

  5. Unter https://uar-ot.glitch.me/ finden Sie eine einfache Demonstration des Ursprungstests (zusammen mit dem Quellcode).

Wie kann ich als Einbettung eines Drittanbieters am Ursprungstest teilnehmen?

Ab Chrome 96 können Einbettungen von Drittanbietern (z. B. ein iFrame auf einer anderen Website) am Ursprungstest teilnehmen, ohne dass die Website der obersten Ebene registriert werden muss.

So registrieren Sie sich als eingebettetes Video eines Drittanbieters:

  1. Rufen Sie den Testzeitraum zur Reduzierung des User-Agents auf und klicken Sie auf Registrieren.
  2. Klicken Sie beim Erstellen des Tokens unbedingt auf das Kästchen Third-party matching.
  3. Wenn du den reduzierten User-Agent-Header von der Einbettung eines Drittanbieters erhalten möchtest, aktualisiere die HTTP-Antwortheader.
  4. Um den reduzierten User-Agent-String in JavaScript APIs zu empfangen, muss das Testtoken über JavaScript eingeschleust werden.

Einige wichtige Punkte beim Ausführen des Ursprungstests für Einbettungen von Drittanbietern: + Critical-CH kann nicht für Einbettungen von Drittanbietern angegeben werden. Daher wird bei der ersten Navigation nicht der reduzierte UA-String gesendet, obwohl die Unterressourcenanfragen der Einbettung von Drittanbietern den reduzierten UA-String senden. + Wenn der Ursprungstest für den Ursprung einer Einbettung eines Drittanbieters validiert wird, wird bei nachfolgenden Anfragen an denselben Ursprung in einer Navigation der obersten Ebene der reduzierte UA-String gesendet. Aus diesem Grund wird empfohlen, sowohl für Top-Level-Anfragen als auch für Einbettungsanfragen gleichzeitig am Ursprungstest teilzunehmen. + Wenn der User-Agent Drittanbieter-Cookies deaktiviert hat, funktioniert der Ursprungstest für den User-Agent-Header in Einbettungsanfragen von Drittanbietern nicht. Die JavaScript APIs erhalten jedoch weiterhin den reduzierten UA-String.

Wie überprüfe ich, ob der Ursprungstest funktioniert?

Prüfen Sie die Anfrageheader und stellen Sie Folgendes sicher, um zu bestätigen, dass der Ursprungstest funktioniert:

  1. Der Header „User-Agent“ enthält die reduzierte Version. Liste mit Beispielen reduzierter UA-Strings Es ist leicht zu erkennen, dass der String der Chrome-Nebenversion 0.0.0 enthält.
  2. Der Header Sec-CH-UA-Reduced ist auf ?1 festgelegt.

Die Header der ersten Antwort, die das Ursprungstesttoken enthalten, sollten so aussehen:

Header der ersten Antwort, die das Ursprungstesttoken enthalten.

Die nachfolgenden Anfrageheader mit dem reduzierten UA-String sollten dann so aussehen:

Nachfolgende Anfrageheader, die den reduzierten UA-String enthalten.

Wie beende ich die Teilnahme am Ursprungstest zur Reduzierung des User-Agents?

Sie können während des Testzeitraums jederzeit die Teilnahme beenden und den vollständigen User-Agent-String erhalten. So beenden Sie die Teilnahme:

  1. Senden Sie in Ihrer HTTP-Antwort einen Accept-CH-Header, der Sec-CH-UA-Reduced nicht enthält. Hinweis: Accept-CH mit einem leeren Wert ist eine gültige Möglichkeit, dies zu erreichen, wenn Ihre Website keine anderen Clienthinweise anfordert.
  2. Entfernen Sie den Header Origin-Trial für den Test zur Reduzierung des User-Agents aus der HTTP-Antwort.
  3. Wenn festgelegt, entfernen Sie Sec-CH-UA-Reduced aus dem Critical-CH-Header in Ihrer HTTP-Antwort.

Wie lange dauert der Ursprungstest?

Der Ursprungstest zur UA-Reduktion dauert mindestens sechs Monate, was etwa sechs Chrome-Meilensteinen entspricht. Der Ursprungstest wird in M95 angezeigt und endet in M101. Zu diesem Zeitpunkt wertet Chrome das Feedback aus dem Ursprungstest aus, bevor der reduzierte User-Agent-String gemäß dem Einführungsplan stufenweise gesendet wird. Wenn eine Website länger benötigt, kann sie einen nachfolgenden Ursprungstest zur Einstellung aktivieren. Dadurch kann sie mindestens sechs weitere Monate lang auf den vollständigen UA-String zugreifen. Wir werden weitere Details zur Einstellung veröffentlichen, sobald sie verfügbar ist.

Wie kann ich Feedback zum Ursprungstest der User-Agent-Reduktion geben?

Sende Probleme oder Feedback an das GitHub-Repository für die UA-Reduktion.