Jenkins内容安全策略

bttbmeg0  于 2022-10-06  发布在  Jenkins
关注(0)|答案(1)|浏览(247)

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

我知道这些网站:

我有一个通过Jenkins三叶草插件显示的html页面。此html页面使用内联样式,例如:

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

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

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

我试图放松CSP规则,添加具有不同级别(self、unsafe-inline、..)的不同参数组合(脚本-src、style-src)。但这一切都不管用。

所以我现在的问题是:

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

更新

1.在jenkins.xml文件中尝试:-Dhudson.model.DirectoryBrowserSupport.CSP="default-src 'self'。则会出现以下错误:

拒绝应用内联样式,因为它违反了以下内容安全策略指令:“Default-src‘self’”。‘unSafe-inline’关键字、散列(‘sha256-’)或随机数(‘nonce-...’)才能启用内联执行。还请注意,没有显式设置‘style-src’,因此使用‘default-src’作为备用。

2.在jenkins.xml文件中尝试-Dhudson.model.DirectoryBrowserSupport.CSP="default-src 'self'; style-src 'self'。则会出现以下错误:

拒绝应用内联样式,因为它违反了以下内容安全策略指令:“style-src‘self’”。‘unSafe-inline’关键字、散列(‘sha256-’)或随机数(‘nonce-...’)启用内联执行所需的

我明白这个尝试不能解决我的问题,因为默认src包含style-src

3.在jenkins.xml文件中尝试-Dhudson.model.DirectoryBrowserSupport.CSP="default-src 'self'; style-src 'unsafe-inline'。则会出现以下错误:

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

mccptt67

mccptt671#

在实验过程中,我建议使用脚本控制台动态调整CSP参数,如Configuring Content Security Policy页面中所述。(在Jenkins维基页面上有另一个注解,它表明您可能需要强制重新加载页面才能看到新的设置。)

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

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

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

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

相关问题