Skip to content

MS_SecurityHTTPHeaders

nishi_74322014 edited this page Aug 3, 2026 · 1 revision

セキュリティ強化のHTTPヘッダ

概要

  • 昨今、セキュリティ強化の HTTP ヘッダが実装されている。
  • ブラウザ側は、これを見てよりセキュアになるよう挙動を変更する
    (一部、meta タグでページのマークアップに直接ポリシーを設定できる)。

詳細

主要なヘッダ

X-XSS-Protection

クロスサイト スクリプティング(XSS)に対する
フィルタ機能(ページの読み込みを停止)を強制的に有効にする。

  • 現在のブラウザでは以下を設定することで、X-XSS-Protection は大枠不要だが、

    • 強い Content-Security-Policy をサイトが実装し、
    • インライン JavaScript の使用を無効('unsafe-inline' を許可しない)にする。
  • Content-Security-Policy に対応していない古いブラウザでは防御になる。

補足(最新化): XSS Auditor は、 フィルタ自体が情報漏洩の経路になる問題(XS-Leaks)が指摘され、 Chrome 78 / Edge で削除、Firefox は元から未実装である。 現在は X-XSS-Protection: 0(明示的に無効化)を推奨する見解が主流で、 防御は Content-Security-Policy に一本化するのが正しい。

X-Frame-Options / Frame-Options

  • RFC 7034 仕様の標準ヘッダ
  • 内部にページを表示しないように指定する。
  • クリック ジャッキング攻撃を防ぐために使用する。
  • また、同一生成元(Same-Origin)を許可できる。
意味
DENY 一切フレーム内に表示させない
SAMEORIGIN 同一生成元のページからのみ許可
ALLOW-FROM <uri> 指定した生成元からのみ許可(現在は非推奨・多くのブラウザで未対応)

補足(最新化): X-Frame-Options の後継は CSP の frame-ancestors ディレクティブである。 ALLOW-FROM の代替になるうえ、複数の生成元を指定できる。

Content-Security-Policy: frame-ancestors 'self' https://example.com;

両方指定した場合、対応ブラウザでは frame-ancestors が優先される。

X-Content-Type-Options

  • W3C 仕様の標準ヘッダ
  • Content-Type の自動的判断(MIME sniffing)を止め、合致しない動作を回避する。
X-Content-Type-Options: nosniff

追加されたヘッダ

Content-Security-Policy

特定の種類の攻撃を検知し、影響を軽減するために追加できるセキュリティ レイヤ。
Content-Security-Policy(MS_ContentSecurityPolicy.md

Strict-Transport-Security (HSTS)

  • W3C 仕様の標準ヘッダ
  • 現在接続しているドメインへの次回以降のアクセスにおいて、HTTPS の使用を強制する。
    詳細は SSL/TLS を参照。
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Public-Key-Pins

  • RFC 7469 仕様の標準ヘッダ

  • Pre-loaded public key pinning
    本物の証明書の公開鍵データのハッシュ値をブラウザにあらかじめ登録し、
    ブラウザが TLS 接続する際に実際のサーバから送信されてくる証明書の
    公開鍵データのハッシュ値と比較して、不正な証明書の利用を検知、防止する機能。

  • HTTP-based public key pinning (HPKP)
    サーバから HTTP ヘッダでブラウザに Pinning 情報を通知し登録させる。

補足(最新化): HPKP は廃止された(Chrome 72 で削除、Firefox も撤去)。 設定ミスや鍵の紛失でサイトが長期間閲覧不能になる (いわゆる HPKP suicide)リスクが高く、 かつ攻撃者が悪用して正規サイトを封鎖できる(RansomPKP)ためである。

代替として、 Certificate Transparency(CT) による誤発行の監視と、 Expect-CT(これも役目を終え非推奨)を経て、 現在は CT ログが証明書発行の必須要件となることで担保されている。 なお、証明書ピンニング自体はモバイル アプリ等では引き続き有効な手段である。

その他のヘッダ

補足(最新化): 元 Wiki 執筆時以降に一般化した主なヘッダを補う。

ヘッダ 用途
Referrer-Policy Referer ヘッダの送出範囲を制御(strict-origin-when-cross-origin が既定寄り)
Permissions-Policy カメラ・位置情報等のブラウザ機能の利用可否を制御(旧 Feature-Policy
Cross-Origin-Opener-Policy (COOP) 別生成元のウィンドウとのブラウジング コンテキスト分離
Cross-Origin-Embedder-Policy (COEP) 埋め込みリソースに明示的な許可を要求
Cross-Origin-Resource-Policy (CORP) 自リソースを他生成元から読み込ませない
Cache-Control: no-store 認証済みページのキャッシュ抑止(キャッシュ・コントロール

COOP / COEP は、Spectre 系のサイドチャネル攻撃への対策として
クロスオリジン分離(crossOriginIsolated)を成立させるために用いる。

参考


Tags: セキュリティ, IT国際標準, 通信技術, IIS, .NET開発, .NET Core, ASP.NET, ASP.NET MVC

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally