CSP ジェネレーター
コンテンツ セキュリティ ポリシー ヘッダーの生成
CSP ジェネレーターの使い方
- 1許可したいストラテジーコマンド(デフォルト-src、スクリプト-src、img-srcなど)を入力します。
- 2信頼するソース名またはプロトコルを入力します。
- 3生成されたContent-Security-Policy レスポンスヘッダを表示し、サーバーの設定に固執します。
コンテンツセキュリティポリシーの構築(CSP)
CSP = 直接 1 値 1 値 2; 直接 2 値 3; ...CSP は、ブラウザのスクリプト、スタイル、画像、接続のソースをホワイトリストにリストします。また、XSS ループホールがあっても、不正な入力を防ぐことができます。
報告のみ(報告のみ)モードでは、違反が最初に記録されることが推奨されます。そうしないと、過度の戦略は、サイト上の正当なリソースを損なう可能性があります。
HTTPレスポンスヘッドによるCSP(コンテンツセキュリティ戦略)は、「これらのソースのリソースのみが読み込まれる」というブラウザを指示し、XSSの防衛**です。 攻撃者がスクリプトに正常に注入されたとしても、白いリストになかった場合、ブラウザは実行を拒否します。 最も厳しい戦略は `default-src 'none ' であり、ケースバイケースベースで必要なソースを開きます。
** インラインスクリプトは、CSP ランディングの最大の障害です**: デフォルト CSP は、全てのインライン <script> を禁止し、プロパティをオンクリックします。 3つのソリューション: 外部ファイル(最もきれいな)から抽出する1つ。 2つは、各応答に対して nonce (<script nonce="...") を使用する。 3つは rash (script content SHA-256) を使用する。 `unsafe-inline '、インラインスクリプトを解放できる間、CSP ' のプライマリ保護を放棄し、できるだけ避けるべきです。 メニュー コンテンツセキュリティ-Policy-Report-Onlyモデルをオンライン観測期間に使用することを提案します** 違反のレポートを収集し、強制的なモデルに切り替える前に戦略を調整する。
| コマンド | ログイン | サンプル値 |
|---|---|---|
| default-src | デフォルトのリソースポリシー (戻る) | 'self' |
| script-src | JavaScript ソース | 'self' 'nonce-xxx' |
| style-src | CSS ソース | 'self' 'unsafe-inline' |
| img-src | 画像ソース | 'self' data: https: |
| connect-src | XHR/fetch/WebSocket | 'self' https://api.example.com |
| font-src | フォントソース | 'self' https://fonts.gstatic.com |
| frame-ancestors | 誰が埋め込むことができますか? | 'none' |
| upgrade-insecure-requests | 自動アップグレード HTTPリクエスト | (値なし) |
| report-uri | メールアドレス | /csp-report |
一般的なCSPコマンドクイックチェック
よくある質問
ポイントとは?
すべての未指定のコマンドの背景を提供し、したがってほとんどのラベルをカバーするために'self'として設定されます。
初めてのレポートのみを使用する必要がありますか?
はい、サイトを破壊することなく戦略を調整するために、一定期間の報告された違反を観察します。
CSPは、すべてのXSSを停止することができますか?
インパクトを大幅に低減しますが、深い防御層であり、入力フィルターを交換することはできません。
CSPはXSSを完全に保護できますか?
いいえ、銀弾ではなく、深い防衛の一部です。 CSPは、外部スクリプトのロードと内部の注入を防止することができますが、許可されたドメイン名で、悪意のあるスクリプト(例えば、CDNと汚染される)を守ることはできません。 2はJSONPエンドポイントを介して注入しました。 3 DOM XSSは、すでに存在するスクリプトの攻撃の直接動作を指示します。 正しい保護レベルは:入力検証出力変換CSP定期的なセキュリティ監査です。 さらに、csp 設定エラー(例: script-src には * が含まれているか、data:) が動作しない。
サードパーティサービスの後、CSPが失敗したのはなぜですか?
サードパーティ(統計、広告、旅客サービス、地図、フォント)は通常、スクリプト、起動リクエストをロードし、iframe を埋め込むため、それぞれが対応する指示が必要です。 チェック方法: ブラウザコンソールを開き、CSP のデフォルトでは、特定のブロックされた URL を印刷し、必要に応じてコマンドを侵害します。 一般的なニーズ: Google Analytics は、script-src + conect-src が必要です。Google フォントはスタイル src + フォント src が必要です。YouTube はフレーム src が必要です。 メニュー ワイルドカードではなく、第三者に別のソースドメイン名を割り当てました。 メニュー
