「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
特定の種類の攻撃を検知し、
- データの窃取から
- サイトの改ざんによるマルウェアの拡散
など影響を軽減するために追加できるセキュリティレイヤー
詳細 †
- Content-Security-Policy: W3C 仕様の標準ヘッダー。
- Firefox 23 以上、Chrome 25 以上、および Opera 19 以上でサポート。
- 以下のようなポリシーを設定し、それをWebブラウザに強制させる。
- ロード可能なスクリプトを制限する
- インライン記述のスクリプトの実行を禁止する
方式 †
コンテンツの
- 提供元(URL)
- 取得方法(HTTPS経由のみなど)
を制限することで、
- 攻撃者のコンテンツを読み込ませることを阻止し、
- 結果として、コンテンツに対する攻撃を軽減する。
対応方法 †
クロスサイトスクリプティング †
XSS の発生する箇所を削減・根絶することができる。
- 実行を許可するスクリプトの正しいドメインをブラウザに向けて指定する。
- 究極的な防衛策として、スクリプトの実行を全面的に拒否することも可能。
パケットキャプチャ †
取得するコンテンツのドメインを制限することに加え、
サーバは通信に使うプロトコルを指定することも可能。
設定 †
方法 †
- Content-Security-Policy HTTP ヘッダ
CSP で優先される配信のしくみは HTTPヘッダ
- <meta http-equiv="Content-Security-Policy" content="・・・">タグ
ページのマークアップに直接ポリシーを設定する場合に便利
記述 †
- connect-src
保護対象リソースがスクリプトインターフェイス
(XMLHttpRequest? オブジェクトの send() メソッドなど)~
を使用して読み込むことのできる URL を制限する。
- font-src
保護対象リソースがフォントの読み込み元にできる場所を制限する。
- img-src
保護対象リソースがイメージの読み込み元にできる場所を制限する。
- media-src
保護対象リソースがメディアの読み込み元にできる場所を制限する。
- object-src
保護対象リソースがプラグインの読み込み元にできる場所を制限する。
- script-src
- 保護対象リソースが実行できるスクリプトを制限
- インラインスクリプト、および eval に対する追加の制限する。
- style-src
保護対象リソースにユーザーが適用できるスタイルを制限する。
- default-src
他の CSP フェッチディレクティブのフォールバックする。
- frame-src
保護対象リソースが埋め込めるフレームの供給元を制限する(CSP2 では廃止する。
- report-uri
ポリシー違反に関するレポートをユーザーエージェントが送信する URL を指定する。
- sandbox
ユーザーエージェントが保護対象リソースに適用する HTML サンドボックスポリシーを指定する。
- form-action
HTML フォーム要素のアクションとして使用できる URL を制限する。
- frame-ancestors
UAがHTML 以外のリソースを埋め込めるようにするかどうかを示す。
- plugin-types
埋め込み可能なリソースのタイプを限定する。
- base-uri
ドキュメントのベース URL の指定に使用できる URL を制限する。
- child-src
入れ子になったブラウジングコンテキストと Worker の実行コンテキストの作成を制御する。
後方互換性 †
- 後方互換性を保って設計されている。
- CSP 未対応のブラウザでも CSP 実装済のサーバと通信できる。
- CSP 未対応のサーバでも CSP 実装済のブラウザと通信できる。
関連するヘッダ †
Content-Security-Policy-Report-Only †
- W3C 仕様の標準ヘッダー。
- Firefox 23 以上、Chrome 25 以上、および Opera 19 以上でサポート。
- ポリシーを強制せず、ポリシー違反が起きた時のレポーティングのみを行う。
- 違反レポートは JSON の文書で構成され、HTTP POSTリクエストを介して指定された URI に送信される。
廃止されたヘッダ †
X-Content-Security-Policy †
以前のFirefoxで、Content-Security-Policyは、X-Content-Security-Policyだった。
- これらの実装は廃止されている。
- 制限があり、一貫性がなく、非常に多くのバグが含まれるので使用してはいけない。
X-Webkit-CSP †
以前のWebKit?系で、Content-Security-Policyは、X-Webkit-CSPだった。
- これらの実装は廃止されている。
- 制限があり、一貫性がなく、非常に多くのバグが含まれるので使用してはいけない。
参考 †
導入しました系 †
Tags: :IT国際標準, :通信技術, :IIS, :.NET開発, :.NET Core, :ASP.NET, :ASP.NET MVC