首页 > 解决方案 > 内容安全政策大幅放松;仍然出现错误

问题描述

我正在制作一个仅用于本地家庭网络服务器的简单应用程序(实际上是 Cockpit 的插件),并且我已经大大放松了 CSP。不过,我收到以下错误消息:

Refused to apply inline style because it violates the following Content Security 
Policy directive: "default-src 'self' http://127.0.0.1:9090". Either the 
'unsafe-inline' keyword, a hash ('sha256-BMIkowAqVEI88ibUJ1NtYB8ByZOuS4MTi73eGoFo2+Q='), 
or a nonce ('nonce-...') is required to enable inline execution. Note also that 
'style-src' was not explicitly set, so 'default-src' is used as a fallback.

我的应用程序是一个简单的 app.js+html+css,带有一些外部 css。manifest.json 如下:

    "content-security-policy": "default-src *  data: blob: filesystem: about: ws: wss:
 'unsafe-inline' 'unsafe-eval' 'unsafe-dynamic'; script-src * data: blob: 'unsafe-inline'
 'unsafe-eval'; connect-src * data: blob: 'unsafe-inline'; img-src * data: blob: 
'unsafe-inline'; frame-src * data: blob: ; style-src * data: blob: 'unsafe-inline'; 
font-src * data: blob: 'unsafe-inline'; frame-ancestors * data: blob: 'unsafe-inline';"

上面的 CSP 有点极端,但这是我发现的最宽松的政策。

根据驾驶舱文档:

“默认情况下,Cockpit 使用严格的内容安全策略为包提供服务,其中不允许内联样式或脚本。可以使用此设置在每个包的基础上覆盖它。

如果覆盖的内容安全策略不包含 default-src、connect-src、base-uri、form-action、object-src 或 block-all-mixed-content,那么这些将被添加到清单中的策略中。 "

有什么想法可能会绊倒我的应用程序吗?

标签: javascriptcsssecurityserver

解决方案


推荐阅读