Subresource Integrity (SRI) ハッシュ生成器|CDNリソースの改ざんを防ぐ
外部CDNなどでホストされているJavaScriptやCSSファイルを安全に読み込むためのSubresource Integrity (SRI) ハッシュを生成するオンラインツールです。ファイル内容からSHA-256, SHA-384, SHA-512のハッシュ値を計算し、integrity属性を含むHTMLタグを即座に作成できます。開発者のためのセキュリティ強化ツールです。
💡 ツール概要
- 3種類のハッシュアルゴリズム: Webで標準的に利用される
SHA-256,SHA-384,SHA-512に対応。ボタン一つで切り替えられます。 - 多彩な入力方法: ローカルのJS/CSSファイルをドラッグ&ドロップするか、ファイル選択ダイアログからアップロードできます。また、クリップボードのコードを直接貼り付けることにも対応しています。
- HTMLタグ自動生成: リソースのURLを入力すると、ファイル拡張子(.js/.css)を判別し、
integrity属性とcrossorigin属性を含む完全な<script>タグまたは<link>タグを自動生成します。 - クライアントサイド処理: ファイルの内容や入力されたコードはサーバーに送信されず、すべてお使いのブラウザ内で処理が完結するため、セキュアに利用できます。
🧐 よくある質問
Q. Subresource Integrity (SRI) とは何ですか?なぜ必要ですか?
A. CDN(Content Delivery Network)などでホストされている外部リソースが、攻撃者によって改ざんされるリスクを防ぐためのセキュリティ機能です。ブラウザはリソースをダウンロードした際、HTMLに記述されたハッシュ値と実際のファイルから計算したハッシュ値が一致するかを検証します。もし値が異なれば、改ざんされたと判断してそのリソースの実行をブロックします。これにより、クロスサイトスクリプティング(XSS)攻撃などのリスクを低減できます。
Q. どのハッシュアルゴリズムを選ぶべきですか?
A. 現在、多くのガイドラインでSHA-384が推奨されています。SHA-256もまだ安全ですが、将来的な暗号解読技術の進歩を考慮すると、より強度の高いアルゴリズムが望ましいとされています。SHA-512は最も強力ですが、ハッシュ値が長くなります。特別な要件がなければ、デフォルトのSHA-384を選択するのが一般的です。
Q. crossorigin="anonymous" はなぜ必要ですか?
A. SRIを有効にするには、リソースがCORS(Cross-Origin Resource Sharing)の要件を満たす必要があります。crossorigin="anonymous"属性は、認証情報(CookieやHTTP認証など)を送信せずにリソースをリクエストするようブラウザに指示します。これにより、異なるオリジン(ドメイン)からでも安全にリソースを読み込み、SRIによる検証を行うことができます。
📚 SRIハッシュの豆知識
SRIハッシュは、ローカル環境のコマンドラインでも生成できます。例えば、opensslコマンドを使えば以下のようにして生成可能です。
openssl dgst -sha384 -binary script.js | openssl base64 -A
このコマンドは、指定したファイルのSHA-384ハッシュをバイナリ形式で計算し、その結果をBase64エンコードするものです。しかし、毎回コマンドを思い出して入力するのは手間がかかります。このツールを使えば、ブラウザ上でファイルをドラッグ&ドロップするだけで、目的のintegrity属性付きHTMLタグを瞬時に取得でき、開発フローを効率化できます。