想要从应用程序中删除样式 src 不安全内联

问题描述 投票:0回答:2

我试图通过设置 Content-Security-Policy 标头来减轻 XSS 攻击,但 Chrome 不断抛出错误:

拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:“script-src 'self' 'nonce-Njg3MGUxNzkyMjViNDZkN2I3YTM3MDAzY2M0MjUxZGEzZmFhNDU0OGZjNDExMWU5OTVmMmMwMTg4NTA3ZmY4OQ=='”。启用内联执行需要“unsafe-inline”关键字、哈希值(“sha256-...”)或随机数(“nonce-...”)。

这是我的内容安全策略标头:

不想在我的应用程序中包含样式 src unsafe-inline,同时删除其抛出错误

        httpResponse.setHeader(
                "Content-Security-Policy",
                "default-src 'self' 'unsafe-inline' 'unsafe-eval' data:;"
                        + "style-src 'self' fonts.googleapis.com 'sha256-CwE3Bg0VYQOIdNAkbB/Btdkhul49qZuwgNCMPgNY5zw=';" + "base-uri 'self' data:;"
                        + "frame-src 'self' * data:;" + "connect-src 'self' * data:;"
                        + "font-src 'self' fonts.gstatic.com https://cdn.predix-ui.com data:;"
                        + "frame-ancestors 'self' data:");
        chain.doFilter(request, httpResponse);
java http content-security-policy
2个回答
0
投票

此消息抱怨脚本(而非样式):

Refused to execute inline event handler

并且您插图的代码片段中没有设置

script-src

安排允许的类型/来源(尤其是与脚本内容相关的)来解决此问题。


0
投票

错误消息包含 script-src 指令“script-src 'self' 'nonce-Njg3MGUxNzkyMjViNDZkN2I3YTM3MDAzY2M0MjUxZGEzZmFhNDU0OGZjNDExMWU5OTVmMmMwMTg4NTA3ZmY4OQ=='”,而您配置的策略中没有 script-src 指令。由于缺少它,因此应该使用默认 src 的回退,这应该允许“不安全内联”。您同时更改了策略,或者定义了多个策略。

错误消息表明存在内联事件处理程序(onclick、onchange 等)。这些可以通过 CSP 级别 3 中的哈希和“不安全哈希”来允许,但最好的解决方案是使用事件侦听器重写它们。

对于XSS,你最关心的应该是限制script-src。如果您限制 CSP 的其余部分,通过样式进行 XSS 真的很难,请参阅 https://scotthelme.co.uk/can-you-get-pwned-with-css/

© www.soinside.com 2019 - 2024. All rights reserved.