Jenkins里的Crumb

Crumb的作用

CSRF Protection

首先解释一下CSRF,Cross-Site Request Forgery(CSRF或XSRF)跨站请求伪造,是一种web安全漏洞。如果没有CSRF保护,Jenkins的admin访问其他网站,将允许这个网站对Jenkins执行操作,导致Jenkins受害。

Jenkins 中的 CSRF 保护

Jenkins的CSRF保护使用token(在Jenkins里叫crumb),它由Jenkins创建,并发送给用户。任何导致修改的表单提交或者类似的操作,比如:触发任务或修改构建配置,都需要提供Crumb。crumb 包含标识创建它的用户的信息,因此使用另一个用户的token提交将被拒绝。

设置CSRF保护

Manage Jenkins » Configure Global Security » CSRF Protection 中,管理员可以配置 CSRF Protection。

在这里插入图片描述

默认的Crumb Issuer,生成crumb的哈希,并在其中编码以下的信息

  • 为其生成crumb的用户名
  • 生成crumb的网络会话 ID
  • 为其生成crumb的用户的 IP 地址
  • 此 Jenkins 实例独有的salt

当面包屑被发送回 Jenkins 时,所有这些信息都需要匹配,以便该提交被视为有效。

在脚本里使用

发给Jenkins的POST请求通常需要提供crumb。这也适用于使用用户名和密码进行身份验证的脚本客户端。由于 crumb 包含网络会话 ID,客户端需要执行以下操作:

  • /crumbIssuer/api 发送请求,请求面包屑。注意 Set-Cookie响应头
  • 对于所有后续请求,除了用户名和密码之外,还提供 crumb 和会话 cookie。

或者使用用户名和 API Token 进行身份验证。
使用API Token的话,即使Jenkins打开了CSRF保护,也不需要提供crumb

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值