我对詹金斯内容安全策略感到困惑。
我知道这些网站:
- 配置内容安全策略 https://wiki.jenkins-ci.org/display/JENKINS/Configuring+Content+Security+Policy
-
内容安全策略参考 http://content-security-policy.com/
我有一个通过 Jenkins Clover 插件显示的 html 页面。该html页面使用内联样式,例如:
<div class='greenbar' style='width:58px'>
div 元素可视化进度条。
使用默认的 Jenkins CSP 配置会导致以下结果:进度条_失败 https://i.stack.imgur.com/3Jr1h.png
我想要的结果如下所示:Progressbar_WORKS https://i.stack.imgur.com/1cXuv.png
我尝试放宽 CSP 规则,添加具有不同级别(self、unsafe-inline 等)的不同参数组合(script-src、style-src),但没有任何效果。
所以我现在的问题是:
- 我必须在哪里指定 CSP 配置?
- 是否可以使用内联样式?
- 样式应该位于哪里?我的 css 样式表位于 Jenkins 服务器本地。
- 让内联样式和 CSP 规则“满意”的最佳方法是什么
Update
1. Try:
-Dhudson.model.DirectoryBrowserSupport.CSP="default-src 'self'
在 jenkins.xml 文件中。然后出现如下错误:
拒绝应用内联样式,因为它违反了以下规定
内容安全策略指令:“default-src 'self'”。要么
“unsafe-inline”关键字、哈希值(“sha256-”)或随机数
('nonce-...') 需要启用内联执行。另请注意
'style-src' 没有明确设置,所以 'default-src' 被用作
倒退。
2. Try
-Dhudson.model.DirectoryBrowserSupport.CSP="default-src 'self'; style-src 'self'
在 jenkins.xml 文件中。然后出现如下错误:
拒绝应用内联样式,因为它违反了以下规定
内容安全策略指令:“style-src 'self'”。要么
'unsafe-inline' 关键字,哈希值
('sha256-'),或随机数
需要 ('nonce-...') 才能启用内联执行
我知道这个尝试不能解决我的问题,因为default-src包含style-src
3. Try
-Dhudson.model.DirectoryBrowserSupport.CSP="default-src 'self'; style-src 'unsafe-inline'
在 jenkins.xml 文件中。然后出现如下错误:
拒绝加载样式表
s://jenkins/andsomedir/stylesheet.css [其 https://... 不允许发布两个以上的链接:(]
因为它违反了以下内容安全策略指令:
“style-src'不安全内联'”。