サブリソース完全性(SRI)とは?
サブリソース完全性(SRI)は、ブラウザが取得するファイル(例:CDNから)が予期せず変更されていないことを検証できるセキュリティ機能です。リソースの暗号学的ハッシュをHTMLで提供されるハッシュと比較することで動作します。
動作原理:
- リソースファイルの暗号学的ハッシュを生成
- scriptまたはlinkタグのintegrity属性にハッシュを含める
- ブラウザがリソースを取得してハッシュを計算
- ブラウザが計算されたハッシュと提供されたハッシュを比較
- ハッシュが一致すればリソースが読み込まれ、一致しなければ読み込みがブロック
利点:
- セキュリティ:サードパーティリソースの悪意ある変更から保護
- CDN保護:CDNで提供されるファイルが改ざんされていないことを保証
- サプライチェーンセキュリティ:外部依存関係の完全性を検証
- ブラウザサポート:モダンブラウザで広くサポート
サポートされるアルゴリズム:
- SHA-256(推奨最低)
- SHA-384(推奨)
- SHA-512(最高セキュリティ)