Tho*_*mas 28 html css jenkins content-security-policy
我对Jenkins内容安全策略感到困惑.
我知道这些网站:
我有一个通过Jenkins Clover插件显示的html页面.这个html页面使用内联样式,例如:
<div class='greenbar' style='width:58px'>
Run Code Online (Sandbox Code Playgroud)
div元素可视化进度条.使用默认的Jenkins CSP配置会产生以下结果: Progressbar_FAIL
我想要的结果如下: Progressbar_WORKS
我试图放松CSP规则,添加不同级别的参数(script-src,style-src)的不同组合(self,unsafe-inline,..)但没有任何作用.
所以我现在的问题是:
更新
1.尝试:
-Dhudson.model.DirectoryBrowserSupport.CSP="default-src 'self'
在jenkins.xml文件中.然后发生以下错误:
拒绝应用内联样式,因为它违反了以下内容安全策略指令:"default-src'self'".要求内联执行,需要'unsafe-inline'关键字,散列('sha256-')或nonce('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('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 "不安全的内联"".
Dav*_*her 36
在进行实验时,我建议使用脚本控制台动态调整CSP参数,如配置内容安全策略页面中所述.(Jenkins wiki页面中还有另一个注释,表明您可能需要强制重新加载页面以查看新设置.)
要同时使用内联样式和本地样式表,您需要添加self和unsafe-inline:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self'; style-src 'self' 'unsafe-inline';")
Run Code Online (Sandbox Code Playgroud)
根据进度条的操作方式,您可能需要以相同的方式调整"script-src".
找到有效的设置后,可以调整Jenkins启动脚本以添加CSP参数定义.
de.*_*.ru 18
只是要明确在Jenkins上永久设置这个CSP属性.
如果你在Ubuntu上运行Jenkins :
$ vim /etc/default/jenkinsJAVA_ARGS并添加CSP策略,如下所示:JAVA_ARGS="-Djava.awt.headless=true -Dhudson.model.DirectoryBrowserSupport.CSP=\"default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src data:;\""如果你在CentOS上运行Jenkins :
$ vim /etc/sysconfig/jenkinsJENKINS_JAVA_OPTIONS并添加CSP策略,如下所示:JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhudson.model.DirectoryBrowserSupport.CSP=\"default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src data:;\""保存文件并重新启动Jenkins.
$ sudo service jenkins restart或在您的浏览器中http://localhost:8080/safeRestart
以下属性对我有用。以下属性允许所有外部服务器。
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src * 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src *; style-src * 'unsafe-inline';")
Run Code Online (Sandbox Code Playgroud)