「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>セキュリティ強化のHTTPヘッダ]] * 目次 [#m9593f4e] #contents *概要 [#s95cf358] 特定の種類の攻撃を検知し、 -データの窃取から -サイトの改ざんによるマルウェアの拡散 など影響を軽減するために追加できるセキュリティレイヤー *詳細 [#c4b97d8a] -Content-Security-Policy: W3C 仕様の標準ヘッダー。 -Firefox 23 以上、Chrome 25 以上、および Opera 19 以上でサポート。 -以下のようなポリシーを設定し、それをWebブラウザに強制させる。 --ロード可能なスクリプトを制限する --インライン記述のスクリプトの実行を禁止する **方式 [#z0e87136] コンテンツの -提供元(URL) -取得方法(HTTPS経由のみなど) を制限することで、 -攻撃者のコンテンツを読み込ませることを阻止し、 -結果として、コンテンツに対する攻撃を軽減する。 **対応方法 [#vd8e08b9] ***クロスサイトスクリプティング [#bc4dc4af] XSS の発生する箇所を削減・根絶することができる。 -実行を許可するスクリプトの正しいドメインをブラウザに向けて指定する。 -究極的な防衛策として、スクリプトの実行を全面的に拒否することも可能。 ***パケットキャプチャ [#lfae43b5] 取得するコンテンツのドメインを制限することに加え、~ サーバは通信に使うプロトコルを指定することも可能。 -すべてのコンテンツを HTTPS で取得されるように指定。 -Cookie に secure フラグを付与するように指定。 -[[Strict-Transport-Security HTTPヘッダ>#c8dd0eb5]] **設定 [#z0c7248b] ***方法 [#w93d3219] -Content-Security-Policy HTTP ヘッダ~ CSP で優先される配信のしくみは HTTPヘッダ -<meta http-equiv="Content-Security-Policy" content="・・・">タグ~ ページのマークアップに直接ポリシーを設定する場合に便利 ***記述 [#n3179bfc] -CSP 1.0 仕様 --connect-src --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 サンドボックスポリシーを指定する。 -CSP2 の新しいディレクティブ --form-action~ HTML フォーム要素のアクションとして使用できる URL を制限する。 --frame-ancestors~ UAがHTML 以外のリソースを埋め込めるようにするかどうかを示す。 --plugin-types~ 埋め込み可能なリソースのタイプを限定する。 --base-uri~ ドキュメントのベース URL の指定に使用できる URL を制限する。 --child-src~ 入れ子になったブラウジングコンテキストと Worker の実行コンテキストの作成を制御する。 **後方互換性 [#r1b0b682] -後方互換性を保って設計されている。 --CSP 未対応のブラウザでも CSP 実装済のサーバと通信できる。 --CSP 未対応のサーバでも CSP 実装済のブラウザと通信できる。 -CSP 2 については後方互換性が無い *関連するヘッダ [#n54ac3d3] **Content-Security-Policy-Report-Only [#re58040f] -W3C 仕様の標準ヘッダー。 -Firefox 23 以上、Chrome 25 以上、および Opera 19 以上でサポート。 -ポリシーを強制せず、ポリシー違反が起きた時のレポーティングのみを行う。 -違反レポートは JSON の文書で構成され、HTTP POSTリクエストを介して指定された URI に送信される。 **廃止されたヘッダ [#uc9c2703] ***X-Content-Security-Policy [#ua41991f] 以前のFirefoxで、Content-Security-Policyは、X-Content-Security-Policyだった。 -これらの実装は廃止されている。 -制限があり、一貫性がなく、非常に多くのバグが含まれるので使用してはいけない。 ***X-Webkit-CSP [#dbccaaaa] 以前のWebKit系で、Content-Security-Policyは、X-Webkit-CSPだった。 -これらの実装は廃止されている。 -制限があり、一貫性がなく、非常に多くのバグが含まれるので使用してはいけない。 *参考 [#n54c5775] -Content Security Policy (CSP) - Web セキュリティ | MDN~ https://developer.mozilla.org/ja/docs/Web/Security/CSP -Content Security Policy の導入 | Mozilla Developer Street (modest)~ https://dev.mozilla.jp/2016/02/implementing-content-security-policy/ -CSP に関するチートシート - OWASP~ https://jpcertcc.github.io/OWASPdocuments/CheatSheets/ContentSecurityPolicy.html -Cotents Security Policy(CSP)のお勉強 - Qiita~ https://qiita.com/o_Ozzzzk/items/c505b7dd20707eb4ee08 -コンテンツ セキュリティ ポリシー | Web | Google Developers~ https://developers.google.com/web/fundamentals/security/csp/?hl=ja **導入しました系 [#n8ed2504] -Content Security Policy(CSP)をサイトに適用しました~ (Analytics,Adsenseも動くよ) | Webセキュリティの小部屋~ https://www.websec-room.com/2017/05/05/2822 -EGセキュアソリューションズオフィシャルブログ~ 弊社のホームページにContent Security Policy(CSP)を導入しました~ http://blog.eg-secure.co.jp/2013/12/Content-Security-Policy-CSP.html ---- Tags: [[:IT国際標準]], [[:通信技術]], [[:IIS]], [[:.NET開発]], [[:.NET Core]], [[:ASP.NET]], [[:ASP.NET MVC]]