非標準
この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。

resource: というスキームのプレフィックスが付いたリソース URL は、Firefox と Firefox のブラウザ拡張機能によってリソースを内部的に読み込むために使用されますが、情報の一部はブラウザが接続するサイトでも利用できます。

構文

リソースURLは、接頭辞 (resource:) とロードするリソースを指す URL の2つの部分で構成されます。

resource://<url>

resource://gre/res/svg.css

リソース URL ('->') に矢印がある場合は、最初のファイルが次のファイルにロードされたことを意味します。

resource://<File-loader> -> <File-loaded>

より一般的な詳細については、ウェブ上のリソースの識別を参照してください。

この記事では、組み込みのリソースを指すためにFirefoxが内部的に使用するリソース URI に焦点を当てます。

脅威

resource: URL によって共有される情報の一部はウェブサイトで利用できるため、ウェブページは内部スクリプトを実行し、デフォルトの設定を含む Firefox の内部リソースを調べることができます。

たとえば、Browserleaks のスクリプトは、サイトで実行されている簡単なスクリプトでクエリが実行されたときに Firefox が表示する内容を強調表示します (コードは https://browserleaks.com/firefox#more にあります)。

ファイル firefox.js は、プリファレンス名と値を pref() 関数に渡します。 例えば:

http://searchfox.org/mozilla-central/rev/48ea452803907f2575d81021e8678634e8067fc2/browser/app/profile/firefox.js#575

Web サイトではこの pref() 関数をオーバーライドし、スクリプトresource:///defaults/preferences/firefox.js を使用して、 Firefox のデフォルト設定を簡単に収集できます。

さらに、プラットフォームやロケールなどのビルド構成によっては、Webサイトがこの情報を使用して個々のユーザーを識別できるという意味で、いくつかのデフォルト設定値が異なります。

解決方法

この問題を解決するために、Mozillaは バグ 863246 のリソースを読み込む動作を変更しました。これは Nightly(Quantum) 57で登場しました。

過去には、Webコンテンツは、Firefoxの内部リソースだけでなく、拡張機能の資産も含め、URIが必要とするあらゆるリソースにアクセスすることができました。 現在、この動作はデフォルトでは禁止されています。

しかし、特定の状況下で Firefox が Web コンテンツにリソースを読み込む必要があります。 たとえば、ビュー・ソース・ページ (ビュー・ソースまたはビュー選択ソース)を開くと、resource: URIを介して viewsource.css が必要です。Web コンテンツに公開する必要があるリソースは、 resource://content-accessible/という名前の新しい場所に移動されました。これは隔離されており、重要ではないリソースのみが含まれています。 このようにして、重要なリソースを公開し、ほとんどの脅威を排除できます。

: Web と拡張機能の開発者がリソース URL をもう使用しようとしないことをお勧めします。彼らの使い方はうまくいきませんでした。そしてほとんどの使用法はこれ以上動作しません。

仕様

resource: はどの仕様書にも定義されていません。

ブラウザの互換性

resource: は Firefox のみ対応

関連情報

 

ドキュメントのタグと貢献者

このページの貢献者: silverskyvicto
最終更新者: silverskyvicto,