高版本Jenkins關閉跨站請求偽造保護(CSRF)


前言

根據官網描述,Jenkins版本自2.204.6以來的重大變更有:刪除禁用 CSRF 保護的功能。 從較舊版本的 Jenkins 升級的實例將啟用 CSRF 保護和設置默認的發行者,如果之前被禁用。

雖然刪除了禁用csrf保護功能,增加了安全性,但是在一些結合Gitlab、Spinnaker等等工具進行持續集成過程中就增加了一些認證環節,若沒有進行相關配置,得到的一定是403的報錯。因為集成服務都是在內網操作,為刪繁就簡,筆者便考慮關閉 CSRF 保護功能,於是乎,對此展開了摸索……

方案

老版本Jenkins的CSRF保護功能只需要在 系統管理 > 全局安全配置 中便可進行打開或者關閉。讓人頭疼的是較高版本的Jenkins竟然在管理頁面關閉不了CSRF,網上搜索到的資料有寫通過 groovy代碼 實現取消保護,但是筆者操作未成功,最后,Get到了一種成功的解決姿勢。

在Jenkins啟動前加入相關取消保護的參數配置后啟動Jenkins,即可關閉CSRF,配置內容如下:

-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true

Jenkins若是跑在Tomcat下,只需在tomcat啟動腳本中加入配置即可;若是以jar包形式部署的,只需在啟動時加上配置參數即可。

筆者Jenkins是部署在k8s環境中,故啟動參數配置在yaml文件中,如下:

]# cat dp.yaml |grep csrf -C5

### 配置后重啟Jenkins,在全局安全配置中可看到CSRF保護功能已關閉

參考

參考鏈接: https://issues.jenkins-ci.org/browse/JENKINS-61375


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM