有没有理由使用安全性较低的内容安全策略(CSP)?

时间:2019-06-03 14:05:47

标签: javascript content-security-policy

我正在学习内容安全策略。

让我说我的网站abc.com具有以下csp:

default-src 'self' 'unsafe-inline' 'unsafe-eval' xyz.com

这是否意味着它将使用xyz.com的csp来源?

如果我将其更改为:

default-src 'self'

如果第一个更安全,那么有没有理由使用更简单的一个?换句话说,拥有更安全的csp并非总会更好吗?

谢谢

2 个答案:

答案 0 :(得分:1)

  

default-src 'self' 'unsafe-inline' 'unsafe-eval' xyz.com

     

这是否意味着它将使用xyz.com的csp来源?

'self'

是指提供受保护文档的来源,包括相同的URL方案和端口号。

'unsafe-inline'

允许使用内联资源,例如内联<script>元素,javascript: URL,内联事件处理程序和内联<style>元素。

'unsafe-eval'

允许使用eval()和类似的方法从字符串创建代码。

xyz.com

允许来自“ xyz.com”主机的内容。 (请参见源下的host-source

来源:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src


第二个CSP比第一个CSP更具限制性。它仅允许来自相同来源的内容托管。

我建议您阅读this documentation,以更好地了解CSP的目的以及如何最好地利用它们。

答案 1 :(得分:0)

您的第二个选项更安全,但是要允许使用内联脚本,您可以使用随机数或SHA256。

有关更多信息,您可以点击给定的链接。

https://developers.google.com/web/fundamentals/security/csp/#if_you_absolutely_must_use_it

https://csp.withgoogle.com/docs/adopting-csp.html#refactor-inline-event-handlers-and-javascript-uris