CDNリソースの改ざんを防ぐ
scriptやlinkタグにintegrity属性を付けると、ブラウザはダウンロードしたファイルのハッシュが一致したときだけ実行・適用します。CDN侵害やサプライチェーン攻撃で差し替えられたファイルを止められます。別オリジンから読み込む場合はcrossorigin="anonymous"の付与も必要です。
JS / CSS ファイルやテキストから Subresource Integrity ハッシュ(sha256 / sha384 / sha512)を生成し、integrity 属性付きのタグをそのまま出力します。計算はブラウザ標準の crypto.subtle で行われ、内容はサーバーに送信されません。
ここに JS / CSS ファイルをドロップ
または
最大 20.0 MB ・ ファイルはアップロードされません
ファイルまたはテキストを入力するとタグを生成します💡 Subresource Integrity (SRI) について
integrity 属性を付けると、ブラウザはダウンロードしたファイルのハッシュが一致したときだけ実行・適用します。CDN 侵害やサプライチェーン攻撃で差し替えられたファイルをブロックできます。crossorigin="anonymous" が必要です。これが無いと SRI チェックは行われません。SRI Hash Generator は、JavaScript や CSS ファイル(またはテキスト)から Subresource Integrity 用のハッシュを生成するツールです。CDN や外部ホストから読み込むリソースに integrity 属性を付けることで、配信経路で改ざんされたファイルの実行をブラウザにブロックさせられます。
ハッシュ計算はcrypto.subtleを使ってブラウザ内で完結し、ファイル内容や入力テキストはサーバーへ送信されません。
scriptやlinkタグにintegrity属性を付けると、ブラウザはダウンロードしたファイルのハッシュが一致したときだけ実行・適用します。CDN侵害やサプライチェーン攻撃で差し替えられたファイルを止められます。別オリジンから読み込む場合はcrossorigin="anonymous"の付与も必要です。
SRIはsha256 / sha384 / sha512に対応します。仕様ではsha384が推奨です。複数のハッシュを空白区切りで併記すると、ブラウザは対応する最も強いものを使います。ファイルを更新したらハッシュも再生成が必要です。
SRIハッシュは通常のハッシュ値と違い、16進数ではなくBase64で表記します。実装が正しいか確かめたいときは、MDNのSRI解説で例として使われている alert('Hello, world.'); という1行を入れてみてください。sha384 で sha384-H8BRh8j48O9oYatfu5AZzq6A9RINhZO5H16dQZngK7T62em8MUt1FLm52t+eX6xO という値になり、公式ドキュメントの記載と一致します。このツールの実装検証にもこの値を使いました。注意点として、改行やBOMが1バイトでも混ざると全く違うハッシュになります。ファイルをコピーして貼り付けると末尾に改行が入りがちなので、ハッシュが合わないときはまず不可視文字を疑ってください。ファイル入力を使えばこの問題は起きません。
作業の流れに近いツールへすぐ移動できます。