我对Jenkins内容安全政策感到困惑。
我有一个通过Jenkins Clover插件显示的html页面。该html页面使用嵌入式样式,例如:
<div class='greenbar' style='width:58px'>
div元素可视化进度条。使用默认的Jenkins CSP配置会导致以下结果: Progressbar_FAIL
我想要的结果如下所示: Progressbar_WORKS
我试图放宽CSP规则,添加具有不同级别(自我,不安全内联等)的参数(脚本-src,样式-src)的不同组合,但是没有任何效果。
所以我现在的问题是:
更新资料
1.尝试: -Dhudson.model.DirectoryBrowserSupport.CSP="default-src 'self' 在jenkins.xml文件中。然后发生以下错误:
-Dhudson.model.DirectoryBrowserSupport.CSP="default-src 'self'
拒绝应用内联样式,因为它违反了以下“内容安全策略”指令:“ default-src’self’”。要启用内联执行,需要使用’unsafe- inline’关键字,哈希(’sha256-‘)或随机数(’nonce -…’)。还要注意,没有显式设置’style- src’,因此将’default-src’用作后备。
2.尝试 -Dhudson.model.DirectoryBrowserSupport.CSP="default-src 'self'; style-src 'self'进入jenkins.xml文件。然后发生以下错误:
-Dhudson.model.DirectoryBrowserSupport.CSP="default-src 'self'; style-src 'self'
拒绝应用内联样式,因为它违反了以下“内容安全策略”指令:“ style-src’self’”。要启用内联执行,需要使用’unsafe- inline’关键字,哈希(’sha256-‘)或随机数(’nonce -…’)。
我了解此尝试无法解决我的问题,因为default-src包含style-src
3.尝试 -Dhudson.model.DirectoryBrowserSupport.CSP="default-src 'self'; style-src 'unsafe-inline'进入jenkins.xml文件。然后发生以下错误:
-Dhudson.model.DirectoryBrowserSupport.CSP="default-src 'self'; style-src 'unsafe-inline'
拒绝加载样式表s://jenkins/andsomedir/stylesheet.css [其https:// …不允许发布两个以上的链接:(],因为它违反了以下内容安全策略指令:“ style-src ‘unsafe-inline’”。
在进行实验时,我建议按照“ 配置内容安全策略”页面上的说明使用脚本控制台动态调整CSP参数。(Jenkins Wiki页面上还有一条注释,指示您可能需要强制重新加载该页面才能查看新设置。)
为了同时使用内联样式和本地样式表,您需要同时添加 self 和 unsafe-inline :
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self'; style-src 'self' 'unsafe-inline';")
根据进度条的操作方式,您可能还需要以相同的方式调整’script-src’。
找到有效的设置后,您可以调整Jenkins启动脚本以添加CSP参数定义。