本文へスキップ
>_ITDITDセキュリティ対策プラットフォーム

セキュリティヘッダ診断

登録不要で、自分が管理するサイトのトップページのCSP・HSTSなどを点検します。言語別トップページとindex.htmlにも対応します。個別ページ・機密ファイルの場所・クエリ付きURLは取得しません。参考評価はサイト全体の安全性を保証しません。

入力URLをサーバーから取得する基本診断です。転送先は同一ホスト(wwwの有無は可)の取得範囲に制限し、最大4回のHTTP取得・転送を含めて8秒・1応答200KBまでに制限します。匿名の3診断で全体4並列・24実行/分、同じ対象は12実行/分・1並列まで。本文は保存せず、内部接続先を遮断します。
ご自身が所有・管理するサイトに対して使ってください。第三者のサイトを無断で調べる目的では利用しないでください。
サンプルで試す(当サイト自身を診断)

未確認の項目があります。未確認を不備と確定せず、その項目の自動修正プロンプトは作っていません。

B
ヘッダーの参考評価(安全性は未判定)
80 / 100
https://itdef.net/ja
  • Content-Security-Policy要確認・補強
    現在の値: default-src 'self'; img-src 'self' data: blob: https://www.googletagmanager.com https://www.google-analytics.com https://*.google-analytics.com https://*.analyt…
    XSSの被害を大きく減らす多層防御の要。unsafe-inline は避ける。 default-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'
  • Strict-Transport-Security (HSTS)点検条件に一致
    現在の値: max-age=63072000; includeSubDomains; preload
  • X-Frame-Options点検条件に一致
    現在の値: CSP: frame-ancestors 'none'
  • X-Content-Type-Options点検条件に一致
    現在の値: nosniff
  • Referrer-Policy点検条件に一致
    現在の値: strict-origin-when-cross-origin
  • Permissions-Policy未確認(詳細な構文・動作の検証が必要)
    現在の値: camera=(), microphone=(), geolocation=(), browsing-topics=()
  • Cross-Origin-Opener-Policy要確認・補強
    現在の値: same-origin-allow-popups
    別オリジンとの繋がりを断ち、タブナビング等を防ぐ。 same-origin
  • 情報漏えい (Server / X-Powered-By)点検条件に一致

不足するヘッダを設定し、公開応答を再確認する

Next.js 16のサーバー実行・CaddyのCaddyfile・Nginxの条件を確認した静的配信を対象に、X-Content-Type-OptionsとReferrer-Policyの修正候補を案内します。この応答で条件に一致している項目は、追加する例に含めません。

1. この応答で見直す項目

対象2項目はこの応答の点検条件に一致しています。ここで追加する修正例はありません。サイト全体の安全性は別に確認してください。

4. 設定後の応答と動作を確認する

  • 公開トップページを再診断し、今回変更した項目が「点検条件に一致」に変わるか確認します。その他の警告や、個別ページ・404応答・ブラウザでの動作も管理者側で確認してください。
  • 2項目の改善だけで、CSPの問題、侵入の有無、サイト全体の安全性が確認できるわけではありません。

修正例の作成・環境選択はブラウザ内で処理します。再診断ボタンを押すと、上の入力欄のURLを既存の基本診断で再取得します。取得範囲・回数制限は同じです。

CSPは、影響確認から遮断へ進める

最初の例は、object/embedの読み込みを制限するobject-srcと、base要素の参照先を同一オリジンへ制限するbase-uriの2項目です。スクリプト・通信先・フォーム・埋め込まれ方の制限は含みません。これだけでXSS対策やCSP全体が完成するわけではありません。

上でヘッダを設定する環境を選んでください。

  1. 既存のnext.config.*とheaders()を保全し、検証環境の設定へ統合します。ファイル全体を置き換えず、同名ヘッダの重複・後勝ち・CDNの上書きを確かめます。
  2. 段階1ではContent-Security-Policy-Report-Onlyを使います。新しい文書としてページを再読み込みし、ブラウザ開発者ツールのコンソールで対象のCSP違反を確認してください。Chromium系ではInfoも表示対象にします。報告のみは遮断しません。警告がないだけでは検証完了にしません。
  3. この例には報告の送信先を付けません。違反レポートの送信・収集・保存はしません。ブラウザの表示・対応差と、操作していない経路は別に確認します。
  4. 確認後、管理者がこの案内で追加したReport-Only設定だけを保全して段階2の例へ置き換え、同じ2項目を遮断します。元々あった別のポリシーを削除せず、実際の応答と画面操作を再確認します。不具合が出たら元の設定へ戻します。

報告のみを追加しても、既存の遮断CSPは解除されません。既存ポリシーへunsafe-inline等を足して警告を消さないでください。nonce/hashによるスクリプト制限は、描画・キャッシュ方式も調べて別途設計します。

CSP-ROLLOUT-20261016-1 /対象:Next.js 16.4.1・Node.js 22。資料・実動作確認日:2026-10-16。

根拠と検証対象

対象:Next.js 16.4.1 / Node.js 22、Caddy 2.11.7(Caddyfile)。確認日:2026-10-16。CaddyはHTTP/1.1の固定した検証用応答で確認しています。TLS/ACME・HTTP/2・HTTP/3・既存CDN・他の版や追加モジュール、Caddy応答でのブラウザの制限動作は未確認です。

Nginx 1.30.6は2026-10-18確認。静的ファイルの末端locationで、HTTP/1.1の通常・CSS・404応答、親ヘッダの保持と復帰を検証しています。リバースプロキシ・内部転送・TLS・HTTP/2・HTTP/3・ブラウザのMIME制限動作は対象外です。Nginx向けCSP生成は未対応です。

結果を見た後の確認・修正

必要なヘッダと適用条件を確認してから修正してください。変更後はサイトの動作と公開応答を同じ条件で再確認します。

使い方

  1. 1

    自分が管理するサイトのトップページURLを入力します。個別パスやクエリは受け付けません。

  2. 2

    主要なセキュリティヘッダの有無と強さを採点します。

  3. 3

    検出しなかった項目と要確認の設定を原典・構成と照合し、検証環境で補強します。未確認の構文を不備と断定して変更しないでください。

なぜ重要か

セキュリティヘッダは多層防御の一部です。CSPの読み込み先、HSTSの適用範囲、埋め込みや外部連携など、サイトに必要な機能を確認してから変更します。この診断の点数や一律の設定例だけで、安全性や本番での適用可否は判断できません。

よくある質問

Q他人のサイトを診断してもいい?
A

自分が管理するサイトの点検に使ってください。公開トップページ等のHTTP応答を、転送を含め最大4回の取得で確認します。登録不要でも通信は発生します。任意の個別ページや機密ファイルは取得せず、診断回数・時間・応答量も制限しています。

Q満点(A)でないと危険ですか?
A

いいえ。点数はこの応答を限られた条件で点検した参考値です。不要なヘッダーや構成依存の設定もあり、Aや満点でもサイトの安全性は保証しません。実装・認証・公開範囲とブラウザ動作を別に確認してください。

関連ページ