2015-11-03 29 views
7

私はAsp.netアプリケーションでセキュリティ対策を現在適用しており、x-frame-optionsのようないくつかの問題を解決しなければならなかったが、複数のコンテンツセキュリティポリシーディレクティブを追加する方法が難しかった。複数のコンテンツセキュリティポリシーディレクティブをAsp.net Web.configに追加することはできますか?

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 *; " /> 

答えて

3

あなたはNWebsecを使用することをお勧めします。トロイハントからの例を、以下をご覧下さい。(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アプリケーションのセキュリティライブラリを使用して簡単です。いくつかの行で重要なセキュリティヘッダーを設定したり、潜在的に危険なリダイレクトを検出したり、キャッシュヘッダーを制御したり、バージョンヘッダーを削除したりすることができます。ドキュメントについては、プロジェクトのウェブサイトを参照してください。

私はCSPルールを複数行追加できると信じています。

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

+0

次の記事の一番下に記載されているようなリソースの場所に基づいてどのように変更しますか? https://pokeinthe.io/2016/04/09/black-icons-with-svg-and-csp/ – SOReader

関連する問題