小编典典

詹金斯内容安全政策

css

我对Jenkins内容安全政策感到困惑。

我有一个通过Jenkins Clover插件显示的html页面。该html页面使用嵌入式样式,例如:

<div class='greenbar' style='width:58px'>

div元素可视化进度条。使用默认的Jenkins CSP配置会导致以下结果:
Progressbar_FAIL

我想要的结果如下所示: Progressbar_WORKS

我试图放宽CSP规则,添加具有不同级别(自我,不安全内联等)的参数(脚本-src,样式-src)的不同组合,但是没有任何效果。

所以我现在的问题是:

  1. 我必须在哪里指定CSP配置?
  2. 可以使用内联样式吗?
  3. 样式应放在哪里?我的css样式表位于Jenkins服务器上的本地位置。
  4. 使内联样式和CSP规则“满意”的最佳方法是什么

更新资料

1.尝试: -Dhudson.model.DirectoryBrowserSupport.CSP="default-src 'self'
在jenkins.xml文件中。然后发生以下错误:

拒绝应用内联样式,因为它违反了以下“内容安全策略”指令:“ default-src’self’”。要启用内联执行,需要使用’unsafe-
inline’关键字,哈希(’sha256-‘)或随机数(’nonce -…’)。还要注意,没有显式设置’style-
src’,因此将’default-src’用作后备。

2.尝试 -Dhudson.model.DirectoryBrowserSupport.CSP="default-src 'self'; style-src 'self'进入jenkins.xml文件。然后发生以下错误:

拒绝应用内联样式,因为它违反了以下“内容安全策略”指令:“ 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文件。然后发生以下错误:

拒绝加载样式表s://jenkins/andsomedir/stylesheet.css [其https://
…不允许发布两个以上的链接:(],因为它违反了以下内容安全策略指令:“ style-src ‘unsafe-inline’”。


阅读 313

收藏
2020-05-16

共1个答案

小编典典

在进行实验时,我建议按照“ 配置内容安全策略”页面上的说明使用脚本控制台动态调整CSP参数。(Jenkins
Wiki页面上还有一条注释,指示您可能需要强制重新加载该页面才能查看新设置。)

为了同时使用内联样式和本地样式表,您需要同时添加 selfunsafe-inline

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self'; style-src 'self' 'unsafe-inline';")

根据进度条的操作方式,您可能还需要以相同的方式调整’script-src’。

找到有效的设置后,您可以调整Jenkins启动脚本以添加CSP参数定义。

2020-05-16