【エスアールアイ】
SRI(サブリソース完全性) とは?
最終更新:
💡 使う前に、指定したファイルの内容か確かめる
読み込むJavaScriptやCSSなどの内容を、HTMLに指定した期待ハッシュとブラウザが照合する仕組み。正しいハッシュを設定しておけば、不一致のリソースの利用を防ぐ助けになります。
📌 このページのポイント
SRIは何を確かめるの?
CDNを使うときだけ必要?
第三者の配信元の変更や攻撃に備える用途が代表的だけど、外部CDN限定ではないよ。大切なのは、確認済みの内容から期待ハッシュを用意すること。危険なコードでも、その期待値を登録してしまえば一致するから、無害さの検査にはならないんだ。
どのように指定するの?
crossoriginを書けば十分?
導入してから何を確認する?
もっと詳しく知りたい人へ
HTMLとintegrityの値も書き換えられたら?
改ざん後のファイルに合うハッシュへ変えられれば照合は通ってしまいます。SRIは文書そのものを守る仕組みではありません。HTMLをHTTPSで届けることや、配信・更新の権限を管理することも必要です。期待値を信頼できる状態で用意しましょう。
📖 おまけ:英語の意味
「Subresource Integrity」 = サブリソースの完全性
💬 サブリソースは文書が読み込むスクリプトやスタイルなどです。Integrityは内容の完全性であり、提供元の本人確認やプログラムの無害さまで保証する言葉ではありません。