web-dev-qa-db-ja.com

Asp.net Web.configに複数のコンテンツセキュリティポリシーディレクティブを追加することは可能ですか?

現在、Asp.netアプリケーションにセキュリティ対策を適用しており、x-frame-optionsなどのいくつかの問題を解決する必要がありましたが、複数のコンテンツセキュリティポリシーディレクティブを追加する方法に問題がありました。

私はたくさん検索しましたが、web.configに複数のCSPディレクティブを追加する方法について正確な解決策を見つけられませんでしたが、 blog.simontimms.com のようなコードを介してのみです。

現在、これは私が持っているCSPです:

<httpProtocol>
  <customHeaders>
    <clear />
    <add name="X-Frame-Options" value="ALLOW-FROM http://subdomain.domain.com" />
    <add name="Content-Security-Policy" value="frame-ancestors http://subdomain.domain.com" />
  </customHeaders>
</httpProtocol>

私の質問は、Asp.net web.configに複数のコンテンツセキュリティポリシーディレクティブを追加する方法ですか?セミコロンで区切られた以下の構成を試しましたが、機能しません:(

<add name="Content-Security-Policy" value="frame-ancestors http://subdomain.domain.com; img-src *; " />

更新:

上記のコードは、複数のディレクティブを追加するための正しい構文だと思います。フレームの祖先の直後に'self'を見逃しただけで、実行時にエラーが発生し、最初は間違っていたと思いました。

追加情報:

サブドメインがたくさんある問題を実行した場合は、次のようにワイルドカード'*'を付けることができます。

<add name="Content-Security-Policy" value="frame-ancestors 'self' http://*.domain.com; img-src *; " />
12
jtabuloc

NWebsecを使用することをお勧めします。 Troy Huntの次の例をご覧ください。( http://www.troyhunt.com/2015/05/implementing-content-security-policy.html

 <content-Security-Policy enabled="true">
  <default-src self="true" />
  <script-src unsafeInline="true" unsafeEval="true" self="true">
    <add source="https://www.google.com" />
    <add source="https://www.google-analytics.com" />
    <add source="https://cdnjs.cloudflare.com" />
  </script-src>
  <style-src unsafeInline="true" self="true">
    <add source="https://cdnjs.cloudflare.com"/>
  </style-src>
  <img-src self="true">
    <add source="https://az594751.vo.msecnd.net"/>
    <add source="https://www.google.com"/>
    <add source="https://www.google-analytics.com" />
  </img-src>
  <font-src>
    <add source="https://cdnjs.cloudflare.com"/>
  </font-src>
  <object-src none="false" />
  <media-src none="false" />
  <frame-src none="false" />
  <connect-src none="false" />
  <frame-ancestors none="false" />
  <report-uri enableBuiltinHandler="true"/>
</content-Security-Policy>

NWebsecは、ASP.NETアプリケーション用の使いやすいセキュリティライブラリです。数行の設定で、重要なセキュリティヘッダーの設定、潜在的に危険なリダイレクトの検出、キャッシュヘッダーの制御、バージョンヘッダーの削除を行うことができます。ドキュメントについては、プロジェクトのWebサイトを参照してください。

複数行のCSPルールを追加できると思います。

https://www.nuget.org/packages/NWebsec

5
Mehmet Ince