我正在学习内容安全策略。
让我说我的网站abc.com具有以下csp:
default-src 'self' 'unsafe-inline' 'unsafe-eval' xyz.com
这是否意味着它将使用xyz.com的csp来源?
如果我将其更改为:
default-src 'self'
如果第一个更安全,那么有没有理由使用更简单的一个?换句话说,拥有更安全的csp并非总会更好吗?
谢谢
答案 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