【问题标题】:CSP Header is refusing all scripts Spring SecurityCSP Header 拒绝所有脚本 Spring Security
【发布时间】:2018-06-23 08:17:56
【问题描述】:

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

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

拒绝执行内联脚本,因为它违反了以下内容 内容安全策略指令:“script-src 'self' https://fonts.googleapis.comhttps://code.jquery.com https://maxcdn.bootstrapcdn.comhttps://cdn.datatables.net https://cdnjs.cloudflare.comhttps://maps.googleapis.com https://chart.apis.google.comhttps://gyrocode.github.io"。 'unsafe-inline' 关键字、哈希 ('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

我在 XML 配置上使用 Spring MVC 和 Spring Security,我缺少什么吗?

【问题讨论】:

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


    【解决方案1】:

    您在示例代码中设置了两次script-src,从错误消息中可以看出,正在使用第二次,因为它不包括unsafe-inline,所以它被忽略了。删除重复的 CSP 并确保只有一个设置了正确的标题,它会正常工作。否则你的语法没有问题。

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

    【讨论】:

    • 谢谢本,我不会重复这些标签。我刚刚写了 3 个我已经尝试过的示例,但这些示例不起作用。是的,我们有一些动态注入的代码,这使得 unsafe-inline 对我们来说是必要的。
    猜你喜欢
    • 2014-09-03
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 2014-10-31
    相关资源
    最近更新 更多