一尘不染

jenkins内容安全政策

jenkins

我对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’”。


阅读 331

收藏
2020-07-25

共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-07-25