1. Nachrichten
  2. Forum
    1. Unerledigte Themen
    2. Forenregeln
  3. Spenden
  • Anmelden
  • Registrieren
  • Suche
Firefox-Nachrichten
  1. camp-firefox.de
  2. Firefox-Nachrichten

Wegen des Internet Explorers 11: Mozilla ändert User-Agent von Firefox

  • Sören Hentzschel
  • 31. Dezember 2022 um 14:07
  • 4.566 Mal gelesen
  • 12 Antworten

Der Microsoft Internet Explorer spielt heute keine Rolle mehr - sollte man meinen. Auf Grund von fehlerhaft implementiertem User-Agent-Sniffing auf zu vielen Websites, welche Firefox 110 und höher als Internet Explorer 11 erkennen, sah sich Mozilla gezwungen, den User-Agent von Firefox zu ändern.

Der Microsoft Internet Explorer spielt heute keine Rolle mehr – sollte man meinen. Auf Grund von fehlerhaft implementiertem User-Agent-Sniffing auf zu vielen Websites, welche Firefox 110 und höher als Internet Explorer 11 erkennen, sah sich Mozilla gezwungen, den User-Agent von Firefox zu ändern.

Mit jedem Besuch sendet der Browser einen sogenannten User-Agent an die jeweilige Website. Dieser beinhaltet vor allem eine Information darüber, welches Betriebssystem und welcher Browser genutzt wird. Es ist allerschlechteste Praxis einer Website, den User-Agent auszulesen, um Entscheidungen über Funktionalität oder implementierte Code-Pfade zu treffen – und doch machen genau das sehr viele Websites.

Um das Risiko dafür zu minimieren, aber auch aus Privatsphäre-Gründen, um den digitalen Fingerabdruck zu reduzieren, wurde der User-Agent im Laufe der Zeit immer weiter reduziert oder bestimmte Daten auf einen festen Wert eingefroren, was den User-Agent heute bewusst weniger nützlich macht als noch vor vielen Jahren. Andererseits muss jede Änderung mit sehr großer Vorsicht durchgeführt werden, weil die kleinste Änderung auf Grund des zuvor beschriebenen User-Agent-Sniffings wieder neue Kompatibilitätsprobleme auf Websites verursachen kann.

Ein Beispiel für fehlerhaft implementiertes User-Agent-Sniffing ist die Erkennung des Internet Explorers in Version 11. Dessen User-Agent sieht wie folgt aus:

Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko

Einige Websites prüfen stumpf auf das Vorkommen von rv:11 im User-Agent, um daraus zu folgern, dass der Internet Explorer 11 genutzt wird. Das Problem? So hätte der User-Agent von Firefox 110 ausgesehen:

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:110.0) Gecko/20100101 Firefox/110.0

Websites, welche lediglich eine primitive Prüfung wie die eben genannte durchführen, würden damit Firefox 110 als Internet Explorer 11 identifizieren – mit teils schwerwiegenden Folgen, weil diese Websites unter Umständen plötzlich völlig falsche Code-Pfade nutzen und daher nicht mehr korrekt funktionieren.

Aus diesem Grund hat Mozilla einen weiteren Teil des User-Agents von Firefox eingefroren, wie schon das Mozilla/5.0 zu Beginn oder die Version der Browser-Engine Gecko/20100101, zumindest temporär.

Beginnend mit Firefox 110 wird der Teil nach rv: auch in neueren Versionen die Versionsnummer 109 anzeigen, während die hintere Versionsnummer weiterhin korrekterweise die jeweils aktuelle Firefox-Version anzeigen wird. Daraus ergibt sich für Firefox 110 der folgende User-Agent:

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:109.0) Gecko/20100101 Firefox/110.0

Da dieses Problem naturgemäß wieder verschwinden wird, sobald Firefox die Versionsnummer 120 erreicht, wird Mozilla diese Anpassung des User-Agents mit Firefox 120 allerdings wieder entfernen. Firefox 120 wird nach aktueller Planung am 21. November 2023 erscheinen.

Der Beitrag Wegen des Internet Explorers 11: Mozilla ändert User-Agent von Firefox erschien zuerst auf soeren-hentzschel.at.

  • Vorheriger Artikel Social Media: Mozilla kündigt eigene Mastodon-Instanz an
  • Nächster Artikel Mozilla veröffentlicht Firefox 108.0.2

Antworten 12

schlingo
31. Dezember 2022 um 17:09
Zitat von Sören Hentzschel

Es ist allerschlechteste Praxis einer Website, den User-Agent auszulesen, um Entscheidungen über Funktionalität oder implementierte Code-Pfade zu treffen

Hallo Sören :)

bitte entschuldige die blöde Frage. Ich habe zwar keine Ahnung von Webseiten-Erstellung, bin aber neugierig. Was ist denn stattdessen die empfohlene Methode, den UA zu ermitteln?

Gruß Ingo

.DeJaVu
31. Dezember 2022 um 17:40

So oder ähnlich

PHP: get_browser - Manual

Das bieten PHP-Systeme von Grund auf.

Was Sören anprangert ist

Zitat


Einige Websites prüfen stumpf auf das Vorkommen von rv:11 im User-Agent

Ein einfaches String-Search, egal, was für Zeichen noch danach kommen.

Sören Hentzschel
31. Dezember 2022 um 21:38
Zitat von schlingo

bitte entschuldige die blöde Frage. Ich habe zwar keine Ahnung von Webseiten-Erstellung, bin aber neugierig. Was ist denn stattdessen die empfohlene Methode, den UA zu ermitteln?

Zitat von .DeJaVu

So oder ähnlich

PHP: get_browser - Manual

Das bieten PHP-Systeme von Grund auf.

Keine blöde Frage! Das Problem ist nicht die genutzte Methode, um den User-Agent zu ermitteln. Den erhält man ohne Probleme. Die Probleme entstehen erst bei der weiteren Verarbeitung, weil man mit der Information ja irgendetwas anstellen möchte. Sprich man nimmt den kompletten User-Agent, zerlegt diesen in seine Einzelteile und zieht daraus Schlüsse über den Browser und die verwendete Version. Dabei kann sehr viel schief gehen, insbesondere mit Blick in die Zukunft. Denn der Code kann durchaus auch über Jahre funktionieren und plötzlich ändert sich ein ganz entscheidendes Detail, welches zu Problemen führt. Beispielsweise weil die Versionsnummer des Browsers plötzlich dreistellig wird und man genau zwei Ziffern erwartet oder eben jetzt in dem Fall der Konflikt mit dem User-Agent des Internet Explorers. Gleichzeitig wird die Logik zur Erkennung ganz oft aber nicht angepasst. Teilweise werden auch fertige Bibliotheken dafür verwendet und von denen man sich abhängig macht, die im schlechtesten Fall längst nicht mehr gepflegt werden oder in der Anwendung nicht einfach aktualisiert werden kann.

Die Alternative dazu ist Feature-Erkennung. Sprich: Statt zu prüfen, ob der Nutzer Firefox oder einen anderen Browser verwendet, sollte überprüft werden, ob der Browser die Fähigkeit hat, eine bestimmte Schnittstelle oder Funktion zu nutzen. Das ist der einzige zuverlässige Weg, auf den man sich langfristig verlassen kann und sollte. User-Agents stammen aus einer Zeit, aus der Feature-Erkennung noch nicht so gut funktionierte und in der auch noch kein ernsthafter Bedarf an so etwas bestand. Aber heute ist das eigentlich ein No-Go. Und damit meine ich: Für Analyse-Zwecke ist das absolut in Ordnung. Sprich zur Erhebung, welche Browser und Betriebssysteme genutzt werden. Wenn da was schief geht, sind halt ein paar Statistiken falsch. Geschenkt. Aber zur Bestimmung, welche Funktionen der Anwender nutzen kann oder welcher Code-Pfad genutzt wird, weil für unterschiedliche Browser unterschiedliche Code-Pfade implementiert sind, sollte so etwas unbedingt vermieden werden, weil es früher oder später viel zu oft zu Problemen führt - zu vermeidbaren Problemen wohlgemerkt.

.DeJaVu
31. Dezember 2022 um 22:31
Zitat von Sören Hentzschel

ob der Browser die Fähigkeit hat, eine bestimmte Schnittstelle oder Funktion zu nutzen.

Das hattest du mEn früher schon mal geschrieben. Das Beispiel ist auch das, was ich früher ausgelesen habe, 10++ Jahre. Aber egal. Das wäre ideal (Features), aber das kommt so mMn nicht vor. Ich hatte ja schon von meiner Bank -> Nightly geschrieben, das wurde vermutlich behoben.

Aktuell sowas von egal ;) Bleibt sauber.

DenalB
1. Januar 2023 um 01:29

Echt heftig, dass einige Webseiten den User-Agenten nicht korrekt auslesen. Gut, dass Firefox flexibel reagiert, um das abzufedern. :thumbup:

Sören Hentzschel
1. Januar 2023 um 12:20
Zitat von .DeJaVu

Das wäre ideal (Features), aber das kommt so mMn nicht vor.

Selbstverständlich gibt es auch viele Webentwickler, die besser und zukunftsorientierter programmieren. Nicht alles im Web ist auf die schlechteste aller Weisen umgesetzt. ;)

Mira_Belle
1. Januar 2023 um 15:57

Verstehe ich nicht!

HTML, CSS & JavaScript.

Wenn sich jeder Webentwickler an allgemeingültige Standards hält,

sollte es doch Wurscht sein, welcher Browser gerade die Page aufruft!

.DeJaVu
1. Januar 2023 um 16:05

Ach ja...

Mira_Belle
1. Januar 2023 um 16:15
Zitat von .DeJaVu

Ach ja...

Ach komm.

Mein Kommentar ist als Frage zu verstehen.

Aber, ein gesundes, neues Jahr wünsch’ ich Dir.

Und sei doch bitte so nett und erkläre es mir, wenn ich so mit meiner Vermutung daneben liege,

denn ich verstehe es wirklich nicht.

.DeJaVu
1. Januar 2023 um 17:00

Angefangen hat es mit CSS-Weichen, für den IE, Firefox, Opera (bis v12), Chrome, was auch immer. Auch die Einbindung von Videos vor >10 Jahren war unterschiedlich. Nicht jegliches HTML wurde bei allen unterstützt, JavaScript etc.

Aus 2011

Browser im Vergleich
Welcher Browser ist der schnellste? Wie gut halten sich die aktuellen Browser an Webstandards? Und wie sieht es mit der Speicherverwaltung aus? Der Artikel…
www.com-magazin.de

Oder jeder für sich

The CSS3 Test

"Standard" gab es auch nicht immer

WHATWG – SELFHTML-Wiki

Inwiefern Microsoft sich eingebracht hat, mir unbekannt. Der IE hat schon seit langem das Nachsehen, sei es hier, da oder dort. Und es war klar, dass limitiert in der Entwicklung. Deswegen hat MS sich erst mit EDGE versucht und dann letztlich Edge auf Chromium-basis.

Die MDN ist da ziemlich ausführlich und bietet für diverse Begriffe eine Tabelle an, ab wann welcher Browser es unterstützt:

MDN Web Docs
The MDN Web Docs site provides information about Open Web technologies including HTML, CSS, and APIs for both Web sites and progressive web apps.
developer.mozilla.org

Was viele heute sehen und als "Webstandard" titulieren, war ein ganz langer Weg und gar nicht selbstverständlich.

Diskutiere mit! 2 weitere Antworten

Unterstütze uns!

Jährlich (2025)

65,5 %

65,5% (425,86 von 650 EUR)

Jetzt spenden
Über den Artikel diskutieren 12 Antworten, zuletzt: 1. Januar 2023 um 19:13
  1. Kontakt
  2. Datenschutz
  3. Impressum
Community-Software: WoltLab Suite™
  • Alles
  • Firefox-Nachrichten
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
Mastodon