Am Ursprungstest für die Accept-Language-Reduzierung teilnehmen

Accept-Language Reduction ist ein Versuch, passives Fingerprinting zu reduzieren. angezeigt wird, indem die Spracheinstellungen der Nutzer Accept-Language und nur die bevorzugte Sprache des Nutzers (nur eine Sprache) senden.

Ab Chrome 109 In der Betaversion öffnen wir Ursprungstest für die Option „Accept-Language Reduction“ Accept-Language-Header. Dadurch können Websites Probleme erkennen und beheben bevor die reduzierte Accept-Language-Einstellung in einem zukünftige Version. Um die Funktion zu testen, bevor sie in einer stabilen Bevölkerungszahl eingeführt wird, sollten Sie Chrome 109 vor dem Veröffentlichungsdatum aktivieren und testen (derzeit geplant für den 10. Januar 2023).

Unten findest du Beispiele für den Accept-Language-Header vor und nach der Reduzierung.

Aktuell
Accept-Language: en-GB,en;q=0.9,de;q=0.8,fr;q=0.7
Vorgeschlagen
Accept-Language: en-GB

Im Folgenden finden Sie einen Überblick über den Ursprungstest und weitere Informationen. Sie können Ihre Feedback zu dieser Änderung oder zu Problemen, die während des Ursprungstests in den GitHub-Artikel über Accept-Language Reduction .

Was ist Accept-Language?

Die Akzeptieren – Sprache String bei jeder HTTP-Anfrage gemeinsam genutzt und in JavaScript allen Ressourcen, die vom Browser geladen werden. Derzeit enthält es alle bevorzugten Sprachen.

Warum wird die Einstellung „Accept-Language“ reduziert?

Accept-Language Reduction ist ein Versuch, passives Fingerprinting zu reduzieren. Oberflächen in Chrome.

Derzeit wird der Accept-Language-Header standardmäßig für jede HTTP-Verbindung freigegeben -Anforderung und wird in JavaScript allen vom Browser geladenen Ressourcen zur Verfügung gestellt. Es enthält alle Spracheinstellungen des Nutzers. Anstatt den Browser die vollständige Liste der vom Nutzer konfigurierten Sprachen für den Fall, dass Websites mehrsprachige Inhalte bieten, führen wir eine neue Möglichkeit ein, mehrsprachigen Content und der Browser übernimmt die Verhandlungsgeschick und zeigen die bevorzugte Sprache an.

Ein weiterer Grund ist, dass viele Websites die Accept-Language-Header möglicherweise nicht verwenden. für Sprachverhandlungen erforderlich sind (z. B. eine Studie zeigt, dass nur 7,2% der Top-10.000-Websites verwenden Accept-Language). Der Inkognitomodus von Chrome reduzierte Accept-Language in eins.

Was bedeutet das für Webentwickler?

Websites, die für die Sprachverhandlung Accept-Language nutzen, sollten Bereiten Sie sich auf reduzierte Accept-Language vor und ziehen Sie eine Teilnahme am Ursprungstest. Die reduzierten Accept-Language-Werte werden angezeigt an:

  • Der HTTP-Anfrageheader Accept-Language.
  • Der JavaScript-Getter navigator.languages.

Der Browser übernimmt die Sprachverhandlung, um die bevorzugte Sprache des Nutzers, die an Websites gesendet werden soll. Dazu müssen Websites zwei Überschriften hinzufügen Variants (eine neue Kopfzeile zeigt Websites an, die Sprachen unterstützen) Accept-Language und Content-Language im (siehe detailliertes Beispiel unten).

Die reduzierten Accept-Language-Abos umfassen iOS und WebView derzeit nicht und diese Plattformen auch weiterhin die vollständige Liste der Accept-Language. Die Unterstützung für diese Plattformen ist für einen späteren Zeitpunkt geplant.

Ursprungstest für Accept-Language-Reduction

Für einen Ursprungstest muss die teilnehmende Website ein Token in ihrem , mit der der Browser aufgefordert wird, den angegebenen Test zu aktivieren. Dieses bedeutet, dass der Browser bei der ersten Anfrage an die Website nicht weiß, Die Website nimmt an einem Ursprungstest teil. Das bedeutet, dass der anfängliche Anfrage in einer Sitzung wird der reduzierte Accept-Language header nicht gesendet. Anfragen für Unterressourcen auf dieser Seite, sowohl ursprungs- als auch ursprungsübergreifend, erhalten den reduzierten Accept-Language-Header. Nachfolgende Navigationen am selben Ursprung erhält auch den reduzierten Accept-Language-Header. Ursprungsübergreifende Navigation wird wieder der vollständige Header gesendet, während für ursprungsübergreifende Anfragen innerhalb der (z. B. Drittanbieter-iFrame-Anfragen) dennoch die reduzierte Accept-Language -Header, wenn die Frame-Anfrage der obersten Ebene ein gültiges Ursprungstesttoken hat.

Das ähnelt dem Ursprungstest zur Reduzierung des User-Agent. Weitere Informationen zur internen Chromium-Implementierung findest du hier: Implementieren Sie den Reduce-Accept-Language-HTTP-Header.

Am Ursprungstest von Accept-Language Reduction teilnehmen

Weitere Informationen finden Sie in Erste Schritte mit den Ursprungstests von Chrome, Die wesentlichen Schritte sind jedoch unten aufgeführt.

Schritt 1

So registrieren Sie sich für den Ursprungstest und erhalten ein Token für Ihre Domains: besuchen Sie die Testzeitraum für die Reduzierung der Sprache (Accept) Seite.

Schritt 2

Aktualisieren Sie Ihre HTTP-Antwortheader:

  1. Der HTTP-Antwort Origin-Trial: <ORIGIN TRIAL TOKEN> hinzufügen Header, wobei <ORIGIN TRIAL TOKEN> enthält das Token, das Sie erhalten haben, als Sie für den Ursprungstest registriert.
  2. Füge deinem HTTP-Antwortheader Content-Language hinzu, um anzugeben, die Sprache(n) für die Zielgruppe.
  3. Füge deinem HTTP-Antwortheader Variants hinzu, um Websites anzugeben unterstützten Sprachen.
  4. [Optional] Fügen Sie Ihrer HTTP-Antwort Vary: Accept-Language hinzu. um einen Cache-Schlüssel für die Inhaltsverhandlung zu erstellen.
  5. Durch Festlegen dieser Header wird nur die Browsersprache ausgelöst (potenzieller Neustart für die ursprüngliche Anfrage) für die Ursprung. Damit Websites die richtige Sprachdarstellung für Websites, auf denen die Inhalte basierend auf den den Header Accept-Language des Nutzers (siehe Beispiel unten).

Schritt 3

Laden Sie Ihre Website in Chrome M109 Beta (oder höher) und erhalten Sie die reduzierten String für Accept-Language.

Probleme oder Feedback an den GitHub-Support von Accept-Language Reduction senden .

Demo

Für eine Demonstration einer mehrsprachigen Website mit aktiviertem Ursprungstest (zusammen mit dem Quellcode) siehe https://reduce-accept-language.glitch.me/.

Demonstration der Aktivierung und Deaktivierung des Ursprungstests (zusammen mit den Quellcode) siehe https://reduce-accept-language-ot.glitch.me/.

Beispielsweise unterstützt example.com ja (Japanisch) und en (Englisch). A kann Folgendes sein:

GET / HTTP/1.1
Host: example.com
Accept-Language: en

die Website erkennt, dass der Nutzer englischsprachige Inhalte bevorzugt. akzeptable Sprache. Die Antwortheader können Folgendes enthalten:

HTTP/1.1 200 OK
Content-Language: en
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token

Wenn der Nutzer Inhalte in japanischer Sprache bevorzugt, sieht die Anfrage wie folgt aus:

GET / HTTP/1.1
Host: example.com
Accept-Language: ja

In diesem Fall antwortet die Website mit Headern für japanische Inhalte:

HTTP/1.1 200 OK
Content-Language: ja
Variants: Accept-Language=(en ja)
Origin-Token: a-valid-token

Auf der Serverseite sucht die Website unter Umständen nach Unterstützung in bestimmten Sprachen, Es wird auf eine Standardeinstellung zurückgesetzt, wenn keine Unterstützung erkannt wird:

if(accept_language == 'ja') {
    res
.response('ja_page')
}
else {
   res
.response('en_page')
}

Im obigen Beispiel antwortet example.com entweder en oder ja, je nachdem, Accept-Language-Wert. Der Standardwert ist en, wenn keine Übereinstimmung gefunden wird. In diesem Fall können auch Weiterleitungen zu Seiten der entsprechenden Sprache enthalten, entweder /en oder /ja basierend auf dem Wert Accept-Language. Detaillierte Beispiele für Weiterleitungen ein Implementierungsdokumentation.

Unterstützung für Ursprungstests von Drittanbietern

Die Registrierung Ihrer Domains als Drittanbieter-Apps für den Testzeitraum. Wenn Sie einen Dienst betreiben, der als Unterressource für mehrere Quellen implementiert ist wie Anzeigenbereitstellung oder Analytics nutzen, erhalten Sie nur den reduzierten Accept-Language-Header, wenn die Website der obersten Ebene am Ursprung beteiligt ist .

Prüfen, ob der Ursprungstest funktioniert

Der Leitfaden zur Fehlerbehebung bei Ursprungstests von Chrome finden Sie eine vollständige Checkliste, mit der Sie überprüfen können, ob Ihr Token richtig konfiguriert ist.

Sie konfigurieren mehrere Sprachen und deren Priorität von chrome://settings/languages oder „Einstellungen“ → „Sprachen“. Wählen Sie eine Sprache, die Ihre Website nicht unterstützt, und an den Anfang der Liste verschoben wird um sicherzustellen, dass die zusätzliche Neuverhandlung ausgelöst wird.

Die Header der ersten Antwort, die das Token für den Ursprungstest enthalten, sollten so aussehen: wie:

Screenshot des Anfrageheaders mit der Abkürzung „Accept-Language“

Nachfolgende Anfrageheader mit dem reduzierten Accept-Language-Wert sehen wie folgt aus:

Die Header der ersten Antwort, die das Token für den Ursprungstest enthalten.

Teilnahme am Ursprungstest beenden

Während des Testzeitraums kannst du die Teilnahme beenden und die vollständige Liste der Accept-Language des Nutzers erhalten. So beenden Sie die Teilnahme:

  1. Den Origin-Trial-Header für die Accept-Language-Reduction entfernen aus der HTTP-Antwort aus.
  2. [Optional] Entfernen Sie den Variants-Header, der hinzugefügt wurde, um die Ursprungstest in Ihrer HTTP-Antwort verwenden, wenn Sie diesem Header. Sie können auch Variants mit einem leeren Wert verwenden, um dies.
  3. [Optional] Content-Language-Header entfernen, der hinzugefügt wird zu Aktivieren Sie in Ihrer HTTP-Antwort den Ursprungstest, wenn Sie kein Interesse an das Senden dieses Headers.

Dauer des Ursprungstests

Der Ursprungstest „Accept-Language Reduction“ läuft mindestens sechs Monate, was ungefähr sechs Chrome-Meilensteinen entspricht. Der Ursprungstest wird angezeigt M109 und enden mit M114 (die letzte Chrome-Version mit der Testversion). verfügbar). Dann wertet Chrome das Feedback der Quelle aus. bevor Sie den reduzierten Accept-Language-String in einem Gestaffelte Methode: Reduzieren Sie zuerst den Accept-Language-HTTP-Header und dann JS-Schnittstelle. Wenn eine Website mehr Zeit zum Testen benötigt, kann sie eine weitere Ursprungstest zur Einstellung, mit dem sie auf den vollen Accept-Language-String für mindestens weitere sechs Monate. Wir werden weitere Details zum Test zur Einstellung, wenn er bereit ist.

Feedback geben

Probleme oder Feedback an den GitHub-Support von Accept-Language Reduction senden .