我对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’”。
1条答案
按热度按时间mccptt671#
在实验过程中,我建议使用脚本控制台动态调整CSP参数,如Configuring Content Security Policy页面中所述。(在Jenkins维基页面上有另一个注解,它表明您可能需要强制重新加载页面才能看到新的设置。)
为了同时使用内联样式和本地样式表,需要同时添加SELF和UNSAFE-INLINE:
根据进度条的操作方式,您可能还需要以相同的方式调整‘script-src’。
找到有效的设置后,可以调整Jenkins启动脚本以添加CSP参数定义。