web-dev-qa-db-ja.com

サブリソース整合性(SRI)が特定のファイルのみに制限されるのはなぜですか?

サブリソースの完全性(SRI)機能にはかなり熱心です。しかし、なぜそれがJSおよびCSSファイルのみに限定されているのですか? FirefoxとChromeで整合性タグが無視されたLESS(CSSバリアント)ファイルをピン留めしようとしました。

さらに、SRIは主に、コンテンツ配信ネットワーク(CDN)などの外部ソースでホストされる、ファイルの不要な変更から保護するように設計されていることを理解しています。しかし、階層化されたセキュリティが大好きなので、ブラウザに含まれるすべてのファイル(セルフホストであっても)に追加してみませんか?

JSファイルを変更できたとしても、整合性タグも変更できる可能性が高いです(確かではありません)。

8
Bob Ortiz

なぜJSおよびCSSリソースに限定されるのですか?

しかし、なぜそれがJSおよびCSSファイルのみに限定されているのですか?

W3C SRI仕様 の状態:

ここで指定されたスキームはリンクにも適用され、この仕様の将来のバージョンでは、このカバレッジが拡張される可能性があります。

それはまた述べています:

この仕様の将来の改訂には、可能なすべてのサブリソース、つまり、オーディオ、埋め込み、iframe、img、リンク、オブジェクト、スクリプト、ソース、トラック、およびビデオ要素の整合性サポートが含まれる可能性があります。

これは仕様の最初のバージョンにすぎないようです。 githubリポジトリには、 マイルストーン 参照の問題も含まれています。これは、仕様の2番目のバージョンで対処します。たとえば、ダウンロードの整合性を追加する機能の追加に関する githubの問題があります

FirefoxとChromeで整合性タグが無視されたLESS(CSSバリアント)ファイルを固定しようとしました。

彼らは手紙の仕様に従っているようです。最初のバージョンは、linkおよびscript HTML要素の整合性を追加することですが、すべての属性に対してではありません。 仕様のみ言及integrity要素のlink属性をrel="stylesheet"

ユーザーエージェントが、stylesheetのキーワードを持つrel属性を持つlink要素が指すリソースを取得しようとするとき

Less website を見ると、linkに依存していることがわかりますが、rel="stylesheet/less"、したがって、仕様の一部ではありません。

たぶん、2番目のバージョンのgithubリポジトリに問題を報告できますか?

なぜ外部リソースに限定されるのですか?

ブラウザーに含まれているすべてのファイル(セルフホストであっても)に追加しないのはなぜですか?

仕様を見ると、脅威モデルの一部ではないようです。ここに彼らの最初の目標があります:

サードパーティのサービスの侵害は、そのスクリプトを含むすべてのサイトの侵害を自動的に意味するものではありません。

攻撃者が自己ホスト型JavaScriptファイルを変更できる場合、おそらくそれ以上のことができると考えられます。もちろん、攻撃者がHTML部分を変更できるわけではありませんが、攻撃者がモデル内で内部リソースを変更することはできません。

7
Ronny