Anwendungsfälle für User-Agent

User-agents werden seit langem verwendet, um Marketing- und Entwicklungs-Teams wichtige Einblicke in die Anzeige von Website-Inhalten durch Browser, Betriebssysteme und Geräte sowie in die Interaktion zwischen Benutzern und Websites zu bieten. User-agents werden auch verwendet, um Spam zu blockieren und Bots zu filtern, die Sites aus verschiedenen Gründen durchsuchen.

Doch in den letzten Jahren nutzten manche Site-Eigentümer und Marketing-Anbieter den user-agent zusammen mit anderen in Anfrage-Headern enthaltenen Informationen, um digitale Fingerabdrücke zu erstellen, die zur Identifizierung von Benutzern ohne deren Wissen verwendet werden können. Trotz des wichtigen Zwecks, den der user-agent für Site-Eigentümer erfüllt, beschlossen Browser-Entwickler, Änderungen an der Funktionsweise von user-agents vorzunehmen, um potenzielle Datenschutzprobleme für Site-Besucher zu vermeiden.

Browser-Entwickler haben User-Agent Client Hints als Lösung für diese Herausforderung erstellt. Client Hints ermöglichen es Sites weiterhin, die erforderlichen Browser-, Betriebssystem- und Geräteinformationen zu erfassen, bieten aber gleichzeitig einen besseren Schutz vor verdeckten Tracking-Methoden wie dem Fingerabdruck.

Client-Hinweise

User-Agent Client Hints bieten Website-Inhabern die Möglichkeit, auf einen Großteil der Informationen zuzugreifen, die im user-agent verfügbar sind, jedoch auf eine datenschutzfreundlichere Weise. Wenn moderne Browser einen user-agent verwenden, wird bei jeder Anfrage an den Webserver der gesamte user-agent gesendet, unabhängig davon, ob dies erforderlich ist. Client Hints hingegen zwingen den Server dazu, den Browser nach den zusätzlichen Informationen über den Client zu fragen. Nach Erhalt dieser Anfrage kann der Browser seine eigenen Richtlinien oder Benutzerkonfigurationen anwenden, um zu bestimmen, welche Daten zurückgegeben werden. Anstatt den gesamten user-agent standardmäßig für alle Anfragen verfügbar zu machen, wird der Zugriff jetzt eindeutig und überprüfbar verwaltet.

User-Agent Client Hints sind in Chrome seit Version 89 verfügbar. Aktuelle Versionen von Chromium-basierten Browsern wie Microsoft Edge, Opera, Brave, Chrome Android, Opera Android und Samsung Internet unterstützen ebenfalls die Client Hints-API.

Client Hints in den Headern der ersten vom Browser an einen Webserver gerichteten Anfrage enthalten die Browser-Marke, die Hauptversion des Browsers und einen Hinweis darauf, ob es sich bei dem Client um ein Mobilgerät handelt. Jedes Datenelement verfügt über einen eigenen Kopfzeilenwert, anstatt in einer einzelnen Benutzeragenten-Zeichenfolge zusammengefasst zu werden.

Im Folgenden finden Sie einige Client Hints:

Sec-CH-UA: "Chromium";v="101", "Google Chrome";v="101", " Not;A Brand";v="99"
Sec-CH-UA-Mobile: ?0
Sec-CH-UA-Platform: "macOS"

…während dies der user-agent für denselben Browser ist:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36

Obwohl die Informationen ähnlich sind, enthält die erste Anfrage an den Server Client Hints, die nur einen Teil der verfügbaren Elemente in der Zeichenfolge beinhalten. Bei der Anfrage fehlen die Betriebssystemarchitektur, die vollständige Betriebssystemversion, der Name der Layout-Engine, die Version der Layout-Engine und die vollständige Browser-Version. Bei nachfolgenden Anfragen ermöglicht die Client Hints-API Webservern jedoch, zusätzliche Details mit hoher Entropie (hohem Informationsgehalt) zum Gerät anzufordern. Wenn diese Werte mit hoher Entropie angefordert werden, kann die Browser-Antwort je nach der Browser-Richtlinie oder den Benutzereinstellungen diese Informationen enthalten.

Das folgende Beispiel ist ein JSON-Objekt, das von der Client Hints-API zurückgegeben wird, wenn Werte mit hoher Entropie angefordert werden:

{

    "architecture":"x86",
    "bitness":"64",
    "brands":[
        {
            "brand":" Not A;Brand",
            "version":"99"
        },
        {
            "brand":"Chromium",
            "version":"100"
        },
        {
            "brand":"Google Chrome",
            "version":"100"
        }
    ],
    "fullVersionList":[
        {
            "brand":" Not A;Brand",
            "version":"99.0.0.0"
        },
        {
            "brand":"Chromium",
            "version":"100.0.4896.127"
        },
        {
            "brand":"Google Chrome",
            "version":"100.0.4896.127"
        }
    ],
    "mobile":false,
    "model":"",
    "platformVersion":"12.2.1"
}

Die Werte mit hoher Entropie beinhalten mehrere zusätzliche Informationen, die in den standardmäßigen Client Hints nicht verfügbar sind. Die folgende Tabelle enthält Informationen dazu, welche Daten in der Standardanfrage enthalten sind, verglichen mit den User-Agent Client Hints mit hoher Entropie.

HTTP-HeaderJavaScriptUser-agentClient-HintClient-Hint mit hoher Entropie
Sec-CH-UAbrandsJaJaNein
Sec-CH-UA-PlatformPlattformJaJaNein
Sec-CH-UA-MobilemobileJaJaNein
Sec-CH-UA-Platform-VersionplatformVersionJaNeinJa
Sec-CH-UA-ArcharchitectureJaNeinJa
Sec-CH-UA-ModelmodelJaNeinJa
Sec-CH-UA-BitnessBitnessJaNeinJa
Sec-CH-UA-Full-Version-ListfullVersionListJaNeinJa