セキュリティヘッダーチェック

ページのレスポンスヘッダーを貼り付け —curl -sI https://your-site.example/ターミナルで、またはブラウザー Network パネルのブロック — してA+ から F の成績を OWASP Secure Headers チェックリストに基づいて取得:Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options、フレーミング保護、Referrer-Policy, Permissions-Policy、クロスオリジン分離の 3 点セット、バージョン漏えい、 非推奨ヘッダー、Cookie フラグ — 各所見に、それを修正するnginx、Apache、Expressの正確な行が対になります。すべてはブラウザー内で動作し、ページがあなたのサイトに接触することは決してありません。
ステータス行は任意です。複数の Set-Cookie 行はすべて 検査されます。そもそも採点するポリシーを持つには、 CSP 生成で作ってください。ヘッダーブロックを 1 行ずつ 分解するにはHTTP ヘッダーパーサーを使ってください。
まだ成績はありません。レスポンスヘッダーを貼り付けてヘッダーをチェックを押すか、サンプルを読み込んでください。
チェック後、すべての所見の修正行がここに表示されます。
このチェッカーと SSL セキュリティチェックの範囲。 このページはセキュリティレスポンスヘッダー(上の OWASP リスト)を採点します。 SSL セキュリティチェックは HTTPS 設定を採点します:証明書チェーン、プロトコルバージョン、暗号強度、 混在コンテンツ。HSTS と Cookie フラグは両リストに含まれるため両ページに現れますが、 視点が違います — 全体像のために両方実行してください。
セルフテスト
固定ヘッダーブロックに対して採点器を再実行します:良好サンプルは A+、 不良サンプルはすべての減点が発火して F、各ルールの単独検査 (スコアの算術)、バージョン漏えい上限、Cookie 勧告、 CSP 品質注記、frame-ancestors のフレーミング保護としてのカウント、 すべての境界の両側での成績しきい値、修正スニペット、 ネガティブパス。何もどこにも送信されません。
セキュリティヘッダーとは何か?
一文で言うと:セキュリティヘッダーとは、ブラウザーが自力では判断できない保護 — 未知のオリジンからスクリプトを読み込まない、このホストとは二度と平文 HTTP を 話さない、このページをフレームしない — を強制するようブラウザーに指示する レスポンスヘッダーで、それぞれ設定 1 行で済みます。
このページが採点するヘッダー
ヘッダー防ぐ脅威OWASP 推奨値
Strict-Transport-Security最初の平文 HTTP リクエストでのプロトコル downgrade と Cookie 盗難max-age=63072000; includeSubDomains
Content-Security-Policyクロスサイトスクリプティング、悪意ある埋め込み、混在コンテンツdefault-src 'self'; form-action 'self'; base-uri 'self'; object-src 'none'; frame-ancestors 'none'; upgrade-insecure-requests
X-Content-Type-OptionsMIME 混同(スクリプトが画像として配信される)nosniff
X-Frame-Options / CSP frame-ancestorsクリックジャッキング(自サイトのページが攻撃者にフレームされる)deny / 'none'
Referrer-Policy(トークンつき)URL の第三者サイトへの漏えいno-referrer
Permissions-Policyページや埋め込みがカメラ・マイク・位置情報を黙って使用すべての機能を無効化
Cross-Origin-Opener-Policy他のウィンドウがあなたの閲覧コンテキストに干渉same-origin
Cross-Origin-Embedder-Policy同意していないリソースの読み込み(プロセス分離を有効化)require-corp
Cross-Origin-Resource-Policy自サイトのリソースが他サイトに埋め込まれるsame-origin
成績の計算方法

100 から減点方式:−25 CSP なし、−20 HSTS なし、X-Content-Type-Options・Referrer-Policy・フレーミング保護の各欠落 −10、クロスオリジン 3 点セットと Permissions-Policy の各欠落 −5、Server/X-Powered-By のバージョン漏えい −5(上限つき)、非ゼロの X-XSS-Protection −5。アルファベット成績:100 = A+、90+ = A、80+ = B、70+ = C、60+ = D、未満 = F。勧告注記(Cookie フラグ、キャッシュ制御、CSP 品質)は減点しません。

よくある間違い
  • 誤ったレスポンスにヘッダーを設定する。 すべてのレスポンスに追加してください。エラーページとリダイレクトも含みます — nginx の add_header ... always; や Apache の Header always set の always はそのためのものです。
  • ホームページだけ検査する。 プロキシ、キャッシュ、レガシーアプリは、一部のパスだけでヘッダーを除去・上書きすることがよくあります。重要なページを検査してください:ログイン、購入、API エンドポイント。
  • X-XSS-Protection を残す。 それが駆動していた監査機能は自前の脆弱性を生み、ブラウザーは削除しました。非ゼロの値は意図的に減点されます — 削除して CSP に任せてください。
  • X-Frame-Options が現行と信じる。 特定オリジンを許可できず、CSP 標準にもありません。frame-ancestors が現代の代替です。移行期間中の両立は問題なく — このページはどちらも受け付けます。
  • バージョンバナーを出荷する。 Server: Apache/2.4.58 (Unix) は、利益ゼロで攻撃者の既知バグの探索を絞り込みます。バージョンを削ってください。
よくある質問

COOP/COEP/CORP が各 5 点しかないのはなぜ? この 3 点セットは最も新しい層で、主にプロセス分離が欲しい場合(SharedArrayBuffer、Spectre 対策)に必要です。なしでも中核の保護は保たれ、ありなら一部のクロスオリジン埋め込みに調整が要る — だから CSP や HSTS より軽いのです。

高い成績はサイトが安全という意味? いいえ — レスポンスヘッダーが設定されているという意味です。セキュリティヘッダーは 1 つの層です:TLS 設定、セッション処理、入力検証、パッチ適用が、サイトが実際に安全かを引き続き決めます。TLS 層にはSSL セキュリティチェックを。

Permissions-Policy の値がこんなに長いのはなぜ? OWASP ベースラインはすべての機能を明示的にオフにするため、ブラウザーが新機能を追加しても黙って有効化されません。camera=(), microphone=(), geolocation=() のような短い値も出発点です - 何を残すか把握してください。

ここから任意のサイトのヘッダーを検査できる? このページはネットワークリクエストを決してしません — 貼り付けたテキストだけを採点するため、ファイアウォールの内側や内部ホストでも動作し、検査したものがマシンを出ることもありません。ヘッダーの取得はターミナルで curl -sI 1 回です。

Clear-Site-Data や X-Permitted-Cross-Domain-Policies は? 狭い場面で有用です(ログアウトレスポンス、レガシー PDF/Flash ビューアー)。ここでは勧告であり採点対象外です — 毎レスポンスで Clear-Site-Data を送ると、ページ読み込みのたびにユーザーのストレージを消去してしまいます。