Html 这种应用内容安全策略的方法可以吗?
我正在尝试将CSP添加到我的web应用程序中,我在我的索引页中添加了以下元标记:Html 这种应用内容安全策略的方法可以吗?,html,angularjs,security,xss,content-security-policy,Html,Angularjs,Security,Xss,Content Security Policy,我正在尝试将CSP添加到我的web应用程序中,我在我的索引页中添加了以下元标记: <meta http-equiv="Content-Security-Policy" content="img-src 'self' data:;default-src *;style-src 'self' http://* 'unsafe-inline';script-src 'self' http://* 'unsafe-inline' 'unsafe-eval';" /> 以及IIS上的以下
<meta http-equiv="Content-Security-Policy" content="img-src 'self' data:;default-src *;style-src 'self' http://* 'unsafe-inline';script-src 'self' http://* 'unsafe-inline' 'unsafe-eval';" />
以及IIS上的以下my web.config文件:
<customHeaders>
<add name="Content-Security-Policy" value="default-src 'self' 'unsafe-inline' http://*.domain.com;
img-src 'self' http://*.domain.com data:" />
</customHeaders>
是否有必要同时添加元标记和附加标题?或者其中一个就足够了
元标记策略是否覆盖自定义标头
这是否意味着我可以编写内联JavaScript并在代码中使用eval
函数?此规则是否覆盖由标头设置的策略?(因为据我所知,在标题中我禁止使用内联JavaScript和eval
函数)
我的最后一个问题是,如果我使用这些设置,我应该在html中使用ng csp
还是它的其他变体ng csp=“no safe eval”
是否有必要同时添加元标记和附加标题?或者其中一个就足够了
一个就够了。如果您可以让服务器在响应头中发送策略,那就更好了。您也不需要在meta
元素中指定任何内容,这样做没有任何好处
元标记策略是否覆盖自定义标头
只有当meta
策略更严格时,meta
策略才会覆盖标头策略。看看这个答案:
…其中引用了CSP的一部分,其中说,“向要执行的策略列表中添加其他策略只能进一步限制受保护资源的能力”
这是否意味着我可以编写内联JavaScript并在代码中使用eval
函数
如果您的头还为script src
指定了这些值,就可以这样做。但是您的头策略没有。因此,无论在何处指定,浏览器都使用最严格的策略
此规则是否覆盖由标头设置的策略?(因为据我所知,在标题中我禁止使用内联JavaScript和eval
函数)
不,正如答案所解释的,不能通过在其他地方指定不太严格的策略来覆盖严格的策略
因此,最好在一个标题中的一个位置指定所有策略值(而不是
meta
) 如果此实现是为了修复Veracode中突出显示的缺陷,而您仍然继续“不安全内联”“不安全评估”将无法解决问题。