Ressourcen-URLs
Nicht standardisiert: Diese Funktion ist nicht standardisiert und befindet sich nicht auf dem Weg zur Standardisierung. Verwenden Sie sie nicht auf Produktionsseiten, die dem Web ausgesetzt sind: Sie funktioniert nicht für alle Benutzer. Es kann auch große Inkompatibilitäten zwischen Implementierungen geben, und das Verhalten kann sich in Zukunft ändern.
Ressourcen-URLs, URLs mit dem Präfix resource:
, werden von Firefox und Firefox-Browsererweiterungen verwendet, um Ressourcen intern zu laden. Einige Informationen sind jedoch auch für Websites verfügbar, mit denen der Browser verbunden ist.
Syntax
Ressourcen-URLs bestehen aus zwei Teilen: einem Präfix (resource:
) und einem Pfad, der auf die Ressource zeigt, die Sie laden möchten:
resource://<path>
Ein Beispiel:
resource://gre/res/svg.css
Wenn in der Ressourcen-URL Pfeile ('->') gefunden werden, bedeutet dies, dass die erste Datei die nächste geladen hat:
resource://<File-loader> -> <File-loaded>
Bitte beziehen Sie sich auf die URI-Referenz für allgemeinere Details.
In diesem Artikel konzentrieren wir uns auf Ressourcen-URLs, die intern von Firefox verwendet werden, um auf eingebaute Ressourcen zu verweisen.
Bedrohungen
Da einige der von resource:
URLs geteilten Informationen für Websites verfügbar sind, könnte eine Webseite interne Skripte ausführen und interne Ressourcen von Firefox inspizieren, einschließlich der Standardeinstellungen, was ein ernsthaftes Sicherheits- und Datenschutzproblem darstellen könnte.
Zum Beispiel hebt ein Skript auf Browserleaks hervor, was Firefox offenlegt, wenn es von einem einfachen Skript auf der Seite abgefragt wird (den Code finden Sie unter https://browserleaks.com/resource-urls#more).
Die Datei firefox.js übergibt Präferenznamen und -werte an die pref()
-Funktion. Zum Beispiel:
http://searchfox.org/mozilla-central/rev/48ea452803907f2575d81021e8678634e8067fc2/browser/app/profile/firefox.js#575
Websites können Firefox-Standardeinstellungen leicht sammeln, indem sie diese pref()
-Funktion überschreiben und das Skript resource:///defaults/preferences/firefox.js
verwenden.
Darüber hinaus unterscheiden sich einige Standardwerte von Präferenzen je nach Build-Konfigurationen wie Plattform und Sprache, was bedeutet, dass Websites einzelne Nutzer anhand dieser Informationen identifizieren könnten.
Lösung
Um dieses Problem zu beheben, änderte Mozilla das Verhalten beim Laden von resource:
URLs im Firefox-Bug 863246, der in Firefox 57 (Quantum) eingeführt wurde.
In der Vergangenheit konnte Webinhalte beliebige resource:
URLs zugreifen — nicht nur die internen Ressourcen von Firefox, sondern auch die Assets von Erweiterungen. Dieses Verhalten ist nun standardmäßig verboten.
Es ist jedoch nach wie vor notwendig, dass Firefox unter bestimmten Umständen Ressourcen in Webinhalten lädt. Wenn Sie beispielsweise die Quellcodeansicht öffnen (Quelltext der Seite anzeigen oder Auswahlquelle anzeigen), werden Sie feststellen, dass dafür viewsource.css
über eine resource:
URL benötigt wird. Ressourcen, die für Webinhalte verfügbar sein müssen, wurden an einen neuen Ort namens resource://content-accessible/
verschoben, der isoliert ist und nur nicht sensitive Ressourcen enthält. Auf diese Weise können wir wesentliche Ressourcen offenhalten und die meisten Bedrohungen beseitigen.
Hinweis: Es wird empfohlen, dass Web- und Erweiterungsentwickler keine Ressourcen-URLs mehr verwenden. Ihre Nutzung war bestenfalls ein Hack, und die meisten Verwendungen werden nun nicht mehr funktionieren.
Spezifikationen
resource:
ist in keiner Spezifikation definiert.
Browser-Kompatibilität
resource:
ist nur für Firefox verfügbar.
Siehe auch
- URIs
- Was ist eine URL?
- IANA-Liste der URI-Schemata (
resource:
wird hier behandelt)