CSP Header拒绝所有脚本Spring Security

时间:2018-01-14 14:19:39

标签: xml spring-mvc spring-security http-headers content-security-policy

我正在实施Spring Security项目的内容安全策略。 我想从外部链接允许来自本地服务器和一些其他资源(脚本,样式表)的所有资源。

我尝试了不同的语法,但它们都没有工作,因为它们阻塞所有资源并在控制台输出中的所有资源上给出以下异常

  

拒绝执行内联脚本,因为它违反了以下内容   内容安全政策指令:" script-src' self'   https://fonts.googleapis.com https://code.jquery.com   https://maxcdn.bootstrapcdn.com https://cdn.datatables.net   https://cdnjs.cloudflare.com https://maps.googleapis.com   https://chart.apis.google.com https://gyrocode.github.io"。要么是   '不安全直插'关键字,哈希(' sha256-amABz7v3nBNObybd + IM ='),或者   nonce(' nonce -...')是启用内联执行所必需的。

这是我已经尝试过的,以及其他一些调整

<content-security-policy
                policy-directives="script-src 'unsafe-inline' https://fonts.googleapis.com https://code.jquery.com https://maxcdn.bootstrapcdn.com https://cdn.datatables.net https://cdnjs.cloudflare.com https://maps.googleapis.com https://chart.apis.google.com https://gyrocode.github.io" />
OR
<content-security-policy
                policy-directives="script-src 'self' https://fonts.googleapis.com https://code.jquery.com https://maxcdn.bootstrapcdn.com https://cdn.datatables.net https://cdnjs.cloudflare.com https://maps.googleapis.com https://chart.apis.google.com https://gyrocode.github.io" />
OR
<content-security-policy
                    policy-directives="style-src 'self' https://fonts.googleapis.com https://code.jquery.com https://maxcdn.bootstrapcdn.com https://cdn.datatables.net https://cdnjs.cloudflare.com https://maps.googleapis.com https://chart.apis.google.com https://gyrocode.github.io" />

我已经在堆栈上查看了以下链接和其他答案,但没有解决我的问题 Configuring Content Security Policy
Security HTTP Response Headers

这是人们在其他问题上提到的,我仍然拒绝错误

<content-security-policy
                policy-directives="script-src 'self' https://trustedscripts.example.com; object-src https://trustedplugins.example.com; report-uri /csp-report-endpoint/" />

以下是我想要允许的外部资源的域列​​表以及所有内部资源:

https://fonts.googleapis.com
https://code.jquery.com
https://maxcdn.bootstrapcdn.com 
https://cdn.datatables.net
https://cdnjs.cloudflare.com
https://maps.googleapis.com 
https://chart.apis.google.com 
https://gyrocode.github.io

我在Spring配置上使用带有Spring Security的Spring MVC,我遗失了什么?

1 个答案:

答案 0 :(得分:0)

您已在示例代码中设置了script-src两次,并且从错误消息中设置了第二个,并且正在使用它,因为它不包含unsafe-inline它&#39}。被忽略了。删除重复的CSP并确保只使用正确的标题设置一个,它将正常工作。否则你的语法没有错。

当然,如果可以的话,最好删除或手动允许包含sha哈希的代码(CSP消息给你的哈希将起作用)。这是否实用取决于您的确切代码库以及是否动态注入内联代码,这使得基本上不可能没有unsafe-inline

相关问题