XSS防止の最重要ヘッダー。インラインスクリプトの実行を制御し、許可されたリソースオリジンのみを指定します。
script-src 'self' でインラインスクリプトをブロック。nonceまたはhashベースの許可で安全に個別解放。
クリックジャッキング防止。iframe内でのページ表示を制御します。
SAMEORIGIN 同一オリジンのみ許可
ALLOW-FROM 非推奨(CSP frame-ancestors推奨)
MIMEスニッフィング防止。ブラウザがContent-Typeを推測して実行することを阻止します。
nosniff を設定することで、text/plainとして配信したファイルがJavaScriptとして実行されるリスクを排除。
TLSダウングレード攻撃防止。ブラウザにHTTPS接続のみを強制します。
includeSubDomains サブドメインにも適用
preload ブラウザ組み込みリストに登録
推奨: max-age=31536000; includeSubDomains; preload
外部遷移時にどこまでのリファラー情報を送信するかを制御します。
same-origin 同一オリジンのみ
strict-origin-when-cross-origin 推奨設定
unsafe-url 完全URLを常に送信(非推奨)
ブラウザ機能の制限。ページ・iframe内で利用可能なブラウザAPIを制御します。
=() で完全ブロック、=(self) で同一オリジンのみ許可。
| ヘッダー名 | 値 | 評価 | 推奨設定 |
|---|---|---|---|
🔒 診断結果がここに表示されます | |||
Apacheバージョン漏洩により、攻撃者が該当バージョンのCVE(既知脆弱性)を特定して標的型攻撃を実行するリスク。
対策: ServerTokens Prod(Apache)、server_tokens off(Nginx)で最小限の情報に制限。
フレームワーク情報漏洩。Express, PHP, ASP.NETなどの使用技術が攻撃者に明示されます。
対策: ヘッダー自体を削除する。Express: app.disable('x-powered-by')、PHP: expose_php = Off
セッションCookie名からサーバーサイド技術を推測できます。
PHPSESSID PHP
ASP.NET_SessionId .NET
connect.sid Node.js (Express)
HTMLの <meta name="generator"> タグからCMS(WordPress/Drupal/Joomla等)を検出。
WordPress検出時: /wp-admin/ /wp-login.php など管理画面の存在も確認。バージョン情報と既知脆弱性の突合が可能。
| 検出項目 | 値 | リスク | 説明 |
|---|---|---|---|
🔍 診断結果がここに表示されます | |||
HTTPS以外でのCookie送信を防止。HTTP通信ではCookieが平文で送信されるため、中間者攻撃でセッションハイジャックされるリスクがあります。
Secure属性がないCookieは、Wi-Fi盗聴やSSL Stripping攻撃に対して無防備です。
JavaScriptからのCookieアクセスを防止(XSS対策)。document.cookie でセッショントークンを読み取れなくなります。
XSS脆弱性が存在しても、HttpOnlyなCookieはJavaScriptで窃取不可(防御の深層化)。
CSRF防止。クロスサイトリクエストでのCookie送信を制御します。
Lax トップレベルナビゲーション時のみ送信(デフォルト)
None 常に送信(Secure必須)
Cookie prefix security。特殊プレフィックスによりCookieの属性を強制します。
__Secure- Secure属性が必須
サブドメインからのCookie上書き攻撃を防止するCookie Fixation対策として有効。
| Cookie名 | Secure | HttpOnly | SameSite | 評価 |
|---|---|---|---|---|
🍪 診断結果がここに表示されます | ||||
ブラウザのセキュリティモデル。異なるオリジン(スキーム+ホスト+ポート)間のリソースアクセスをデフォルトで禁止します。
CORSはこの制限を明示的に緩和するための仕組み。サーバーがレスポンスヘッダーで許可するオリジンを指定します。
preflight(OPTIONS)リクエストで事前確認後、本リクエストを送信。
以下の設定は深刻なセキュリティリスクを引き起こします。
origin reflection Originヘッダーの値をそのまま返す = 事実上のワイルドカード
null origin許可 sandboxed iframe等から攻撃可能
機密パスの意図しない開示。Disallow: /admin/ のような記述が、逆に攻撃者に管理画面の存在を教えてしまいます。
robots.txtはアクセス制御ではない(あくまでクローラーへの「お願い」)。認証・認可で保護する必要があります。
ソースコード・環境変数の露出。本番サーバーに/.git/や/.envが公開されている場合、ソースコード全体やDB認証情報が漏洩します。
.git/config リモートURL漏洩
.env DB_PASSWORD, API_KEY等
スタックトレース、バージョン情報がデフォルトエラーページに表示されるケース。Django DEBUG=True、PHP display_errors=On等。
本番環境では必ずカスタムエラーページを設定し、技術的詳細を隠蔽すること。
RFC 9116 脆弱性報告の標準。/.well-known/security.txt に連絡先を記載することで、善意のセキュリティ研究者が脆弱性を報告しやすくなります。
Expires: 有効期限
Policy: 開示ポリシーURL
| パス | ステータス | 検出内容 | 深刻度 |
|---|---|---|---|
🕵 診断結果がここに表示されます | |||
永続リダイレクト(301)の重要性。HTTP→HTTPSリダイレクトには301(Moved Permanently)を使用すべきです。
302 キャッシュされない → 毎回HTTPを経由してHTTPSへ(SSL Stripping攻撃に弱い)
302リダイレクトでは、初回アクセス時に中間者攻撃のウィンドウが毎回発生します。
ブラウザ組み込みリスト。hstspreload.org に登録されたドメインは、ブラウザが最初からHTTPS接続を強制します。
要件: max-age ≥ 31536000 + includeSubDomains + preload ディレクティブ。