SRIハッシュジェネレーター

scriptタグとlinkタグのサブリソース完全性ハッシュを生成。SHA-256、SHA-384、SHA-512のintegrity属性を即座に計算します。

このツールについて

SRIハッシュジェネレーターは、JavaScriptおよびCSSファイルのサブリソース完全性ハッシュをブラウザ内で直接計算します。SRIはW3Cのセキュリティ標準で、CDNやサードパーティサーバーから取得したリソースが改ざんされていないことをブラウザが検証できるようにします。<script><link>タグにintegrity属性を追加することで、ハッシュが一致しない場合にブラウザがリソースの実行を拒否し、サプライチェーン攻撃からサイトを保護します。

このツールはSHA-256SHA-384SHA-512のハッシュを同時に生成します。SHA-384はSRIで最も一般的に使用されるアルゴリズムで、セキュリティとパフォーマンスの良いバランスを提供し、W3C仕様で推奨されるデフォルトです。3つのアルゴリズムすべてがブラウザ組み込みのWeb Crypto APIを使用して計算され、ハードウェアアクセラレーションによる定時間実装が提供されます。汎用ハッシュにはハッシュジェネレーターも利用可能です。

SRIハッシュは、cdnjs、jsDelivr、unpkgなどのパブリックCDNからリソースを読み込む際に不可欠です。攻撃者がCDNを侵害してホストされたファイルを変更した場合、SRIハッシュが一致しなくなり、ブラウザがリソースをブロックします。セキュリティ上重要なアプリケーションでは特に重要です。追加の保護として、require-sri-forディレクティブでSRIを強制するContent Security Policyヘッダーの設定も検討してください。

ファイルの内容を直接貼り付けたり、.js.cssファイルをドラッグ&ドロップでアップロードしたり、リソースURLを指定して貼り付け可能なHTMLタグを取得できます。入力サイズも表示されるため、ファイルの重さを監視できます。すべての処理はクライアントサイドで実行されます。コードやファイルがサーバーに送信されることはありません。SRIタグと合わせてページのメタタグを生成する必要がある場合は、メタタグジェネレーターをご覧ください。

使い方

  1. ファイルコンテンツテキストエリアにJavaScriptまたはCSSファイルの内容を貼り付けるか、.js / .cssファイルをドラッグ&ドロップします。
  2. 必要に応じてリソースURL(CDN URLなど)を入力し、生成されるHTMLタグに含めます。
  3. Generate AllをクリックするかCtrl+Enterを押して、SHA-256、SHA-384、SHA-512ハッシュを同時に計算します。
  4. 上部のバッジで**<script>タグと<link>**タグの出力を切り替えます。
  5. integrityハッシュまたはHTMLタグの横にあるコピーボタンをクリックしてクリップボードにコピーします。
  6. Ctrl+Shift+CでSHA-384のintegrityハッシュを素早くコピーできます。
  7. Clearをクリックしてすべての入力と結果をリセットします。

よくある質問

データは安全ですか?

はい。すべてのSRIハッシュ計算はWeb Crypto APIを使用してブラウザ内で完全に実行されます。ファイルの内容、ソースコード、URLがサーバーに送信されたり、データベースに保存されたり、アナリティクスサービスに記録されたりすることはありません。

SRIにはどのSHAアルゴリズムを使うべきですか?

W3CはSRIのデフォルトとしてSHA-384を推奨しています。強力なセキュリティマージンを提供しながら、効率的に計算できます。SHA-256とSHA-512も有効で、すべての最新ブラウザでサポートされていますが、SHA-384が実際には最も広く使用されています。

サブリソース完全性(SRI)とは何ですか?

SRIは、サードパーティサーバー(CDNなど)から取得したファイルが変更されていないことをブラウザが検証できるセキュリティ機能です。scriptタグまたはlinkタグのintegrity属性に暗号学的ハッシュを含め、ブラウザはダウンロードしたファイルを実行前にそのハッシュと照合します。

crossorigin属性は必要ですか?

はい。異なるオリジン(CDNなど)から読み込まれるリソースでSRIを使用する場合、タグにcrossorigin="anonymous"を含める必要があります。これがないと、ブラウザはクロスオリジンリソースの完全性チェックを実行できず、ブロックされます。

SRIはすべてのブラウザで動作しますか?

SRIはChrome、Firefox、Safari、Edge、Operaを含むすべての最新ブラウザでサポートされています。Internet ExplorerはSRIをサポートしていませんが、integrity属性を無視してリソースを通常通り読み込むため、SRIの追加が後方互換性を壊すことはありません。

1つのintegrity属性に複数のハッシュアルゴリズムを使用できますか?

はい。integrity="sha256-abc... sha384-def..."のようにスペースで区切って複数のハッシュを含めることができます。ブラウザはサポートする最も強力なアルゴリズムを使用します。これにより、アルゴリズム間の移行時にグレースフルなアップグレードパスが可能になります。

関連ツール