2015-11-03 38 views
7

我目前在我们的Asp.net应用程序中应用了安全措施,并且必须解决像x-f​​rame-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