インフラ用語集へ戻る

セキュリティ・認証 / サプライチェーン対策

SRIとは

Subresource Integrity。外部JS/CSSが改ざんされていないかハッシュで確認する仕組みです。

用語集内のカードを見る

詳細な図解

外部リソースの改ざんをハッシュで検証する流れ
HTMLscript/linkで読み込む
外部JS/CSSCDNから取得する
integrity値期待ハッシュと照合する
ブラウザ検証一致すれば実行、不一致なら遮断
  • 更新時にhashを再生成
  • crossoriginを確認
  • CSPと合わせて見る

この記事で学べること

SRIを、定義だけで終わらせず、現場で出てくる場面、確認材料、見落としやすい点、関連語とのつながりまで順に確認できます。

  1. SRIを読むときの前提
  2. ハッシュ不一致は実行されない
  3. crossoriginとCORSを見る
  4. CSPと役割を分ける
  5. 変更証跡と引き継ぎ

実務メモ

外部JS/CSSの実配信内容とintegrity値を対応付ける

どこで効くか

SRIはCDN上のライブラリ、外部JS/CSS、タグ配信、静的アセット保護で効きます。外部リソース更新後の表示崩れやConsoleのintegrityエラーで確認します。

残す証跡

証跡には読み込み元URL、integrity値、sha方式、crossorigin属性、ハッシュ生成コマンド、CDN設定、実配信URL、ブラウザConsole結果を残します。

避けたい誤解

正規更新でもハッシュ再生成を忘れるとリソースが実行されません。CDNが圧縮や変換で内容を変える場合、手元ファイルのハッシュと実配信内容がずれることがあります。

まず確認すること

  • 実配信URLでハッシュを確認する
  • crossoriginとCORS応答を確認する
  • 更新手順にintegrity再生成を入れる

SRIを読むときの前提

SRI(Subresource Integrity)は、外部JS/CSSが改ざんされていないかをハッシュで確認する仕組みです。CDN上のライブラリや静的アセットを読み込むとき、期待した内容だけを実行させるために使います。

実務では、scriptタグやlinkタグのintegrity、sha256/384/512、crossorigin、CDN更新、ビルド手順、CSPとの関係を確認します。

証跡には、対象URL、読み込み元URL、integrity値、ハッシュ生成コマンド、crossorigin属性、更新日時、ブラウザでのブロック有無を残します。

ハッシュ不一致は実行されない

SRI付きの外部リソースは、ブラウザが取得後にハッシュを計算し、HTMLに書かれたintegrity値と照合します。不一致ならスクリプトやCSSは実行・適用されません。

これは改ざん検知として有効ですが、正規のCDN更新でもハッシュが変わります。ライブラリのバージョン固定、更新手順、ロールバック手順をセットで考えます。

  • 読み込み元とintegrity値を対応付ける。
  • 更新時にハッシュを再生成する。
  • ブラウザConsoleのSRIエラーを確認する。

crossoriginとCORSを見る

外部リソースでSRIを使う場合、crossorigin属性が必要になる場面があります。CDN側のCORS応答やキャッシュ設定が影響するため、HTML側だけでは判断できません。

同じファイルでもCDN、オリジン、圧縮、変換設定により内容が変わるとハッシュ不一致になります。配信経路で実際に取得されるバイト列を確認します。

  • crossorigin属性の有無を確認する。
  • CDNが内容を書き換えていないか確認する。
  • 実配信URLでハッシュを計算する。

CSPと役割を分ける

CSPは読み込み元を制限し、SRIは読み込んだ内容が期待どおりかを確認します。どちらか一方では、外部リソースの利用リスクを十分に説明できないことがあります。

外部スクリプトを許可する場合は、なぜそのドメインを許すのか、SRIで固定できるのか、タグ管理や動的生成により固定できないのかを記録します。

  • CSPのscript-srcと照合する。
  • 外部ドメインの所有者を確認する。
  • SRIを使えない理由を残す。

変更証跡と引き継ぎ

SRI対応では、対象リソース、integrity値、生成手順、更新者、CDN設定、失敗時の影響を残します。外部ライブラリ更新のたびに壊れやすいため、保守手順が重要です。

引き継ぎでは、フロントエンド担当、Web基盤担当、セキュリティ担当、関連語としてCSP、CDN、SHA-256、HTMLを残すと確認しやすくなります。

  • 更新手順にハッシュ再生成を入れる。
  • Consoleエラーの確認方法を残す。
  • CDN障害時の代替方針を記録する。

関連語

同じ主要カテゴリの用語

セキュリティ・認証の学習順

同じ主要カテゴリの用語をまとめて確認できます。現在の用語を起点に、前後の用語へ進むと文脈を保ったまま読み進められます。

InfraEngKit内の関連機能