北京網(wǎng)站關(guān)鍵詞排名公司谷歌chrome安卓版
目錄
問題背景:
原因:
解決方案:
Jenkins上修改配置?通過Groovy腳本在Script Console中設(shè)置和修改系統(tǒng)屬性
步驟
驗(yàn)證是否清空成功
進(jìn)一步的定制
也可以使用Nginx去解決
使用逆向代理服務(wù)器Nginx:
通過合理調(diào)整CSP配置,可以平衡安全性與功能性的需求。在生產(chǎn)環(huán)境中,務(wù)必進(jìn)行必要的安全性考量,以防止?jié)撛诘陌踩┒础?偨Y(jié):
問題背景:
Jenkins上沒有安裝allure相關(guān)插件 只是將生成的報(bào)告發(fā)送到個(gè)人郵箱; 但是在workspace生成之后 點(diǎn)擊index.html出現(xiàn)下面的情況 一直處于加載中 F12查看 app.js文件無法加載 但是驗(yàn)證了其實(shí)是成功生成了的 并且在本地查看的時(shí)候是正常顯示的?
原因:
? 具體原因是console的報(bào)錯(cuò)
“Refused to load the script 'https://saldevops.jaas-gcp.cloud.sap.corp/job/support-python-ui-test/118/execution/node/3/ws/PANA/allure-report/plugins/packages/index.js' because it violates the following Content Security Policy directive: "script-src 'unsafe-inline'". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback. index.html:1? Refused to load the script 'https://saldevops.jaas-gcp.cloud.sap.corp/job/support-python-ui-test/118/execution/node/3/ws/PANA/allure-report/plugins/screen-diff/index.js' because it violates the following Content Security Policy directive: "script-src 'unsafe-inline'". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.”
從報(bào)錯(cuò)不難看出是瀏覽器block了報(bào)告的查看
解決方案:
Jenkins上修改配置?通過Groovy腳本在Script Console中設(shè)置和修改系統(tǒng)屬性
- 直接清空
import jenkins.model.Jenkins// 將X-Frame-Options設(shè)置為空 Jenkins.instance.setSystemProperty("hudson.model.DirectoryBrowserSupport.CSP", "")// 其他屬性也可以類似地進(jìn)行設(shè)置為空
- 允許特定腳本來源
import jenkins.model.Jenkins// 修改 Content Security Policy,允許特定腳本來源 Jenkins.instance.setSystemProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self'; script-src 'self' 'unsafe-inline' https://yourdomain.com;")
步驟
- 登錄Jenkins:使用管理員賬戶登錄Jenkins界面。
- 打開Script Console:進(jìn)入
Manage Jenkins
->Script Console
。 - 復(fù)制并粘貼腳本:將上面的示例腳本復(fù)制到Script Console中。
- 執(zhí)行腳本:點(diǎn)擊“Run”按鈕來執(zhí)行腳本。
驗(yàn)證是否清空成功
你可以通過瀏覽器的開發(fā)者工具查看HTTP頭,驗(yàn)證這些屬性是否已被清空。例如,在Chrome瀏覽器中:
- 進(jìn)入
Developer Tools
(Ctrl+Shift+I)。 - 轉(zhuǎn)到
Network
標(biāo)簽頁。 - 刷新Jenkins頁面并選擇一個(gè)HTTP請(qǐng)求。
- 查看
Headers
部分,確認(rèn)相關(guān)屬性是否被清空。? ??
進(jìn)一步的定制
如果您需要更具體的配置或者處理其他系統(tǒng)屬性,可以在Script Console中對(duì)這些屬性進(jìn)行類似的設(shè)置或者修改。例如:
// 設(shè)置X-Content-Type-Options為空
Jenkins.instance.setSystemProperty("hudson.model.DirectoryBrowserSupport.CSP", "")// 可以繼續(xù)添加更多需要清空或設(shè)置的屬性
也可以使用Nginx去解決
使用逆向代理服務(wù)器Nginx:
在Nginx配置中添加相關(guān)的CSP頭配置:
server {listen 80;server_name jenkins.yourdomain.com;location / {proxy_pass http://localhost:8080;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;# 添加適當(dāng)?shù)腃SP頭add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' https://yourdomain.com;";}
}
通過合理調(diào)整CSP配置,可以平衡安全性與功能性的需求。在生產(chǎn)環(huán)境中,務(wù)必進(jìn)行必要的安全性考量,以防止?jié)撛诘陌踩┒础?br />
總結(jié):
我自己用的是方法一里面的清空屬性值解決的 比較省事兒 不過要注意清空這些屬性可以臨時(shí)解決某些兼容性問題或進(jìn)行特定的調(diào)試工作,但需要注意的是,這會(huì)顯著降低Jenkins的安全防護(hù)能力。 看到這篇文章的同學(xué)自己可以酌情選擇適合自己的方法去解決該問題