启用CSRF保护是否会阻止对作业进行参数编辑/添加 – 是故意的还是bug?

44次阅读
没有评论

问题描述

最近,Jenkins发布了一些与CSRF保护相关的安全警告。我们尝试在我们的Jenkins版本(版本2.89.2)上启用它,结果发现在启用后,无法通过GUI在自由样式或流水线作业中添加或编辑参数。
我进行了相当广泛的测试,以确定它是罪魁祸首,但我仍然不明白为什么这个选项存在并被推荐,如果它会瘫痪Jenkins作业的话。
这是一个功能还是bug?如果是功能,为什么?有什么好处?

解决方案

请注意以下操作可能因版本差异而有所不同,对于特定问题,你可能需要参考Jenkins的官方文档或社区支持。

方案1 – 问题的可能原因

这个问题可能是因为在Jenkins后面使用了代理,这可能会导致合法请求在Jenkins看来可能被视为跨站点请求。根据官方维基,有如下解释:

如果您在Jenkins前面使用nginx作为反向代理,您需要在Jenkins上添加一个额外的系统属性 “-Dhudson.security.csrf.requestfield=Jenkins-Crumb”。详情请参阅JENKINS-23793。

方案2 – 解决方法

如果您的问题与代理有关,您可以尝试以下步骤来解决问题:
1. 登录到Jenkins服务器。
2. 找到Jenkins的配置文件,通常是jenkins.xmljenkins.service等文件。
3. 在配置文件中添加一个系统属性:-Dhudson.security.csrf.requestfield=Jenkins-Crumb
4. 保存配置文件并重启Jenkins服务,以使更改生效。

通过添加这个系统属性,Jenkins将能够更好地处理通过代理传递的请求,从而减少CSRF保护可能导致的编辑/添加参数的问题。

请注意,虽然上述解决方案可能解决了问题,但对于特定的Jenkins版本和环境,可能会存在其他因素和解决方法。如果问题仍然存在,建议查阅Jenkins的官方文档或社区支持,以获取更多帮助和支持。

以上是关于在启用CSRF保护后无法编辑/添加参数的可能解决方案。根据您的具体情况,选择适合您的方法来解决问题。如果问题依然存在,不妨深入研究Jenkins的官方文档和社区支持,以获得更准确的解决方案。

正文完