外部scriptタグにintegrityハッシュを付ける

CDNのスクリプトは後で差し替わりえます。SRIハッシュがあればブラウザが改変ファイルを拒否します。生成手順です。

このガイドで使う道具

やりたいこと

Subresource Integrityは<script src>や<link>を正確なバイト列に固定します。CDNが別のものを配ればブラウザがブロックします。CDNが配る実ファイルのsha384/512 base64ダイジェストが必要です。

実バイトでハッシュ

実際のファイルをドロップします(保存し直したコピーではなく — 改行や圧縮が影響します)。sha384かsha512を選び、integrity値をコピーして、crossorigin="anonymous"と共にタグへ付けます。

  • integrity="sha384-…" — アルゴリズム接頭辞も値の一部です。
  • タグプレビューは汎用なので、実際のマークアップに属性を合流させてください。

壊れる時

ハッシュ不一致=ブロックです — CDNの正当な更新でも止まります。URLをバージョン固定し(@latestではなくreact@18.2.0)、意図的な更新のたびに再ハッシュしてください。