8 Reaktionen

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

Geschätzte Lesedauer:

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.

Dieser Artikel wurde von Sören Hentzschel verfasst.

Sören Hentzschel ist Webentwickler aus Salzburg. Auf soeren-hentzschel.at informiert er umfassend über Neuigkeiten zu Mozilla. Außerdem ist er Betreiber von camp-firefox.de, der ersten Anlaufstelle im deutschsprachigen Raum für Firefox-Probleme aller Art. Weitere Projekte sind firefox.agenedia.com, mozilla.de, firefoxosdevices.org sowie sozone.de.

8 Kommentare - bis jetzt!

Eigenen Kommentar verfassen
  1. Se
    schrieb am :

    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.

    Est mal ein schönes neues Jahr Dir und allen Leser:innen hier.

    Was sollten websites sonst mit den infos des User-agent macheb, die sie ja brauchen um zu funktionieren?

  2. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    Est mal ein schönes neues Jahr Dir und allen Leser:innen hier.

    Danke, ebenso!

    Was sollten websites sonst mit den infos des User-agent macheb, die sie ja brauchen um zu funktionieren?

     

    Eine Website, welche den User-Agent wirklich braucht, um zu funktionieren, macht etwas grundlegend falsch. Wenn bestimmte Funktionen nicht in allen Browsern funktionieren oder unterschiedliche Browser unterschiedliche Code-Pfade nutzen müssen, dann muss man die Fähigkeit des Browsers prüfen, die entsprechende Funktion oder Schnittstelle ausführen zu können. Welcher Browser genutzt wird, ist dafür vollkommen egal und führt früher oder später ganz oft zu Problemen und sollte daher unter gar keinen Umständen zu diesem Zweck geprüft werden. Welcher Browser genutzt wird, ist eine Information, welche ausschließlich für statistische Zwecke genutzt werden sollte. Und wenn da was falsch erkannt wird, passiert auch nicht mehr als dass ein paar Statistiken falsch sind. Das richtet keinen Schaden an.

  3. noise
    schrieb am :

    Wo stehen wir mit der Alternative Client-Hints in Firefox?

    Wenn man schon den String einfriert und eigentlich dabei bleiben sollte, wie sieht es mit der besseren Alternative aus ? So etwas müsste man ja auch anbieten.

  4. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    Wo stehen wir mit der Alternative Client-Hints in Firefox?

    Client Hints sind nur mal wieder so eine Google-Idee. Mozilla hat diese vermeintliche Alternative bereits im Sommer 2021 explizit als schädlich für die Webplattform abgelehnt. Auch von Apple fehlt bislang die Zustimmung. Client Hints bieten de facto keinen ernsthaften Vorteil gegenüber dem User-Agent.
     

    wie sieht es mit der besseren Alternative aus ? So etwas müsste man ja auch anbieten.

    Die einzige korrekte und zukunftsorientierte Alternative aus Perspektive eines Website-Entwicklers ist die Prüfung auf Verfügbarkeit benötigter Schnittstellen und Eigenschaften der Webplattform. Und das funktioniert bereits seit vielen Jahren. Dafür benötigt man keinen neuen Standard.

  5. Castiel
    schrieb am :

    Das erinnert mich wieder an die Zeiten der Browserweichen und wo sich IE als Mozilla ausgab ("Mozilla 4 compatible MSIE 6 …" oder wie der alte IE sich nannte) und es wunderte keinem.
    Vllt. wäre das eh bis heute so (wills gar nicht testen) und dann sollten Verwechslungen nicht verwundern, gell.

    PS: Websites, die noch den Browser erkennen müssen, sind auch in der selben Zeit steckengeblieben.

  6. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    und wo sich IE als Mozilla ausgab ("Mozilla 4 compatible MSIE 6 …" oder wie der alte IE sich nannte)

    Ausnahmslos jeder Browser hat heute noch Mozilla/5.0 im User-Agent. 😉
     

    PS: Websites, die noch den Browser erkennen müssen, sind auch in der selben Zeit steckengeblieben.

    Dass man für unterschiedliche Browser unterschiedlichen Code ausliefern muss, ist für eine komplexere Website nicht ungewöhnlich. Der User-Agent ist nur das falsche Werkzeug dafür, weil es a) Browser grundlos ausschließen kann und b) Probleme in der Zukunft verursachen kann, wenn die Implementierung nicht ständig geprüft und ggfs. angepasst wird. Deswegen besser Feature-Erkennung als Browser-Erkennung.

  7. Castiel
    schrieb am :

    Ausnahmslos jeder Browser hat heute noch Mozilla/5.0 im User-Agent

    Echt? Wieso eigentlich? Was hat(te) Mozilla denn mit dem Internet Explodierer zu tun, mit anderen Browsern so gemeinsam, dass sich die auch so wie der FF nennen dürfen?

    Deswegen besser Feature-Erkennung als Browser-Erkennung

    Verstehe, Danke!

  8. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    Echt? Wieso eigentlich? Was hat(te) Mozilla denn mit dem Internet Explodierer zu tun, mit anderen Browsern so gemeinsam, dass sich die auch so wie der FF nennen dürfen?

    Browserhersteller dürfen in den User-Agent schreiben, was sie wollen. Aber aus Webkompatibilitätsgründen (eben wegen solchen User-Agent-Sniffings) stehen am Ende eben ganz bestimmte Dinge im User-Agent.

    Der Artikel veranschaulicht das ganz gut:

    https://webaim.org/blog/user-agent-string-history/

Und jetzt du! Deine Meinung?

Erforderliche Felder sind mit einem Asterisk (*) gekennzeichnet. Die E-Mail-Adresse wird nicht veröffentlicht.
  1. Nach Absenden des Kommentar-Formulars erfolgt eine Verarbeitung der von Ihnen eingegebenen personenbezogenen Daten durch den datenschutzrechtlich Verantwortlichen zum Zweck der Bearbeitung Ihrer Anfrage auf Grundlage Ihrer durch das Absenden des Formulars erteilten Einwilligung.
    Weitere Informationen