Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

User-Agent-Reduktion

User-Agent-Reduktion ist eine weitgehend akzeptierte Browser-Initiative zur Reduzierung der Menge an datenschutzrelevanten Informationen, die in User-Agent-Strings (UA-Strings) bereitgestellt werden.

Dieser Artikel zeigt die Unterschiede in UA-Strings als Ergebnis der User-Agent-Reduktion und erklärt, wie Sie bei Bedarf sowohl gekürzte als auch zusätzliche UA-Informationen abrufen können.

Hintergrund

Der User-Agent-String (UA-String) — verfügbar im User-Agent HTTP-Header und in verwandten API-Funktionen wie Navigator.userAgent, Navigator.appVersion und Navigator.platform — ermöglicht es Servern und Netzwerkpartnern, die Anwendung, das Betriebssystem, den Anbieter und/oder die Version des anfordernden User Agents zu identifizieren.

Browser-Erkennung

Theoretisch ist der UA-String nützlich, um den Browser zu erkennen und Code bereitzustellen, um browser-spezifische Fehler zu umgehen oder fehlende Feature-Unterstützung zu kompensieren. Dies ist jedoch unzuverlässig und wird nicht empfohlen:

  • Zukünftige Browser werden Fehler beheben und Unterstützung für neue Funktionen hinzufügen, sodass Ihr Browser-Erkennungscode regelmäßig aktualisiert werden muss, um zu vermeiden, dass Browser ausgeschlossen werden, die die Funktionen, für die Sie testen, tatsächlich unterstützen. Feature-Erkennung ist eine weitaus zuverlässigere Strategie.
  • Es gibt wirklich keine Garantie dafür, dass der durch diese Eigenschaft beworbene User-Agent wirklich derjenige ist, in dem Ihre Seite geladen ist. Browser-Anbieter können im Grunde machen, was sie mit dem UA-String wollen, und würden historisch gesehen falsche Werte von solchen Eigenschaften zurückgeben, um nicht von einigen Websites ausgeschlossen zu werden.
  • Einige Browser ermöglichen es Benutzern, den Wert dieses Feldes zu ändern, wenn sie möchten (UA-Spoofing).

Die folgenden Strategien sind weitaus zuverlässiger, um Fehler und unterschiedliche Browserunterstützung zu umgehen:

  • Feature-Erkennung: Die Unterstützung eines Features erkennen, anstatt die Browserversion.
  • Progressive Verbesserung: Bereitstellung einer Basis wesentlicher Inhalte und Funktionen für möglichst viele Benutzer, während das bestmögliche Erlebnis für Browser bereitgestellt wird, die den gesamten erforderlichen Code ausführen können.

Siehe auch Browser-Erkennung mit dem User-Agent für weitere Informationen, warum das Bereitstellen unterschiedlicher Inhalte für verschiedene Browser in der Regel eine schlechte Idee ist.

Datenschutzbedenken

Zusätzlich hat die in UA-Strings offengelegte Information historisch gesehen Datenschutz-Bedenken aufgeworfen — sie kann verwendet werden, um einen bestimmten User-Agent zu identifizieren, und kann daher für Fingerprinting genutzt werden.

Um solche Bedenken zu mildern, implementieren unterstützende Browser eine User-Agent-Reduktion, die den User-agent-Header und verwandte API-Funktionen aktualisiert, um eine reduzierte Menge an Informationen bereitzustellen.

UA-String-Änderungen nach der Reduktion

In unterstützenden Browsern entfernt die User-Agent-Reduktion drei Informationen aus dem UA-String — die genaue Plattform/OS-Version, das Gerätemodell und die Nebenversionsnummer des Browsers.

Lassen Sie uns ein Beispiel ansehen, damit Sie sehen können, wie das aussieht. Während vorher der UA-String für Chrome auf Android so aussehen könnte:

Mozilla/5.0 (Linux; Android 16; Pixel 9) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.12.45 Mobile Safari/537.36

Sieht er nach dem User-Agent-Reduktions-Update jetzt so aus:

Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36

Die untenstehenden Abschnitte bieten mehr Details zu den jeweiligen Änderungen der UA-Strings.

Plattform-/OS-Version und Gerätemodell

Die Plattform-Version und das Gerätemodell werden immer durch feste Werte dargestellt:

  • Android 10; K auf Android.
  • Macintosh; Intel Mac OS X 10_15_7 auf macOS.
  • Windows NT 10.0; Win64; x64 auf Windows.
  • X11; CrOS x86_64 14541.0.0 auf ChromeOS.
  • X11; Linux x86_64 auf Linux.

Nebenversionsnummer des Browsers

Die Hauptversionsnummer des Browsers wird korrekt angezeigt, aber die Nebenversionsnummern werden immer als Nullen angezeigt — 0.0.0.

Anfordern von UA-Informationen über Client-Hints

Möglicherweise haben Sie noch Code, der auf detaillierten UA-String-Daten basiert und nicht in der Lage ist, auf Feature-Erkennung oder progressive Verbesserung umgestellt zu werden. Beispiele sind feingranulares Logging, Betrugspräventionsmaßnahmen oder eine Software-Hilfeseite, die aufgrund des Gerätetyps des Benutzers unterschiedliche Inhalte bereitstellt.

In diesem Fall können Sie immer noch auf detaillierte UA-String-Daten über Sec-CH-UA-* Header (auch bekannt als User-Agent-Client-Hints) zugreifen. Diese Header bieten eine sicherere und datenschutzfreundlichere Möglichkeit, solche Informationen zu senden, da Server sich für die gewünschten Informationen entscheiden müssen, anstatt dass sie ständig über den User-Agent-String gesendet werden. Außerdem bietet es Zugang zu einer breiteren Auswahl an Informationen.

Weitere Informationen finden Sie unter User-Agent-Client-Hints.

Zugriff auf Client Hints über JavaScript

Die User-Agent Client Hints API ermöglicht den Zugriff auf Client-Hint-Informationen über JavaScript. Die Navigator.userAgentData-Eigenschaft bietet Zugriff auf das NavigatorUAData-Objekt, das Eigenschaften mit den niederschwelligen Client-Hints enthält.

Um auf hochschwellige Hints wie Sec-CH-UA-Model und Sec-CH-UA-Form-Factors zuzugreifen, müssen Sie die Methode NavigatorUAData.getHighEntropyValues() verwenden.

Weitere Informationen finden Sie in der User-Agent Client Hints API.

Siehe auch