HTMLツール

無料 CSP ハッシュジェネレーター

インラインスクリプト・スタイル用のCSPハッシュ値を生成します。SHA-256、SHA-384、SHA-512に対応。

ツールを読み込み中...

CSP ハッシュジェネレーターとは

CSPハッシュとはインラインスクリプトまたはスタイルブロックの正確なコンテンツのbase64エンコードされたSHA-256、SHA-384、またはSHA-512ダイジェストです。ハッシュをCSPヘッダーにscript-src 'sha256-...' または style-src 'sha256-...' として追加するとブラウザはその特定のインラインコードの実行を許可し他のすべてのインラインスクリプトやスタイルをブロックします。これは'unsafe-inline'の最も安全な代替手段です。

クイックアンサー

CSPハッシュを使用してunsafe-inlineですべてのインラインコードを有効にすることなく特定のインラインスクリプトやスタイルを許可します。ハッシュは正確なコードコンテンツの暗号化ダイジェストです。SHA-256が標準です。CSPに script-src 'sha256-...' または style-src 'sha256-...' としてハッシュを追加します。

Last updated: 2026-05-28

制限事項

  • ハッシュはハッシュ化された正確なコンテンツに対してのみ有効です。空白、書式、またはコンテンツの変更は完全に異なるハッシュを生成しCSP許可リストを壊します。
  • 一部のビルドツールやHTMLミニファイアは本番環境でインラインの空白を変更し開発コードから生成されたハッシュを無効にする場合があります。本番出力に対して検証してください。
  • CSPハッシュはunsafe-hashesを有効にしない限りインラインイベントハンドラー(onclick、onerror)では機能せずセキュリティが大幅に低下します。

Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub

使い方

  1. HTMLから正確なインラインスクリプトまたはスタイルコンテンツをコピーします。すべてのスペース、改行、インデントが一致する必要があります。
  2. テキストエリアに貼り付けハッシュアルゴリズムを選択します。
  3. ハッシュ値をコピーしscript-srcまたはstyle-srcの一部としてCSPヘッダーまたはメタタグに追加します。

主な用途

  • 重要なパスローダーやアナリティクススニペット用の特定のインラインスクリプトをすべてのインラインスクリプトを有効にせずに許可します。
  • スタイルシートの読み込み中にファーストビューの重要なCSS用に小さなインラインスタイルブロックを許可します。
  • unsafe-inlineを使用している既存のCSPをより強力なセキュリティのためにハッシュベースの許可リストにアップグレードします。

用途

使用例

重要なパスインラインスタイル

ページでファーストビュー上のヒーローセクションに小さなインラインスタイルが必要です。正確なスタイルブロックをハッシュ化しCSPにstyle-src 'sha256-...' を追加しunsafe-inlineを削除します。ブラウザはこの特定のスタイルブロックのみを実行します。

インラインアナリティクスブートスクリプト

プライバシー重視のサイトが小さなアナリティクスブートスクリプトをインライン読み込みしています。スクリプトをハッシュ化しscript-src 'sha256-...' を追加し侵害されたサードパーティリソースによって注入される可能性のあるものを含む他のすべてのインラインスクリプトをブロックします。

よくあるミス

  • ハッシュ生成後に1つでも空白文字を変更するとハッシュが一致しなくなりスクリプトやスタイルがブロックされます。
  • 同じコードのミニファイ版と非ミニファイ版に同じハッシュを使用すると異なるハッシュが生成されます。
  • 開発環境のハッシュが本番ビルドと一致すると想定するとコードのミニファイやテンプレート処理によりコンテンツが変更されます。

検証

  1. ハッシュ追加後ブラウザコンソールでCSP違反レポートを確認します。ブロックされたスクリプトやスタイルは期待されるハッシュとともに違反メッセージを表示します。
  2. ブラウザのDevToolsのApplicationパネルまたはSecurityタブを使用してアクティブなCSPポリシーを検査しハッシュが認識されていることを確認します。

FAQ

CSP ハッシュジェネレーターのFAQ

インラインコードを編集するとなぜハッシュが機能しなくなるのですか?

ハッシュはインラインコードの正確なバイトシーケンスの暗号化ダイジェストです。スペースの追加、インデントの変更、コメントの追加、1文字の変更などどんな変更でも完全に異なるハッシュが生成されます。インラインコードを変更するたびにハッシュを再生成する必要があります。これは設計上の意図であり承認された正確なコードのみが実行できるようにするためです。

CSPにはハッシュとノンスのどちらを使うべきですか?

ハッシュはめったに変更されない静的なインラインコード(重要なCSSや小さなブートスクリプトなど)に最適です。ノンスは動的に生成されるインラインコードに適しています。ノンスはページ読み込みごとに変更されるためハッシュのように一意の出力ごとに再計算する必要がありません。静的サイトの場合サーバー側のノンス生成が不要なためハッシュの方がシンプルです。

unsafe-hashesとは何ですか?有効にするべきですか?

unsafe-hashesを使用するとインラインイベントハンドラー(onclick、onerrorなど)やjavascript: URLにハッシュを適用できます。イベントハンドラーにはユーザーの影響を受ける値が含まれることが多いためこれは危険です。すべてのイベントハンドラー属性を完全に制御しイベントハンドラーのハッシュ一致がユーザー入力によって属性値に到達した場合にスクリプトインジェクションを有効にする可能性があることを理解している場合にのみunsafe-hashesを有効にしてください。

関連ツール

その他のhtmlツール

こちらもお試しください

こちらもお試しください