栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何通过JSON / JS在Jenkins中为CSRF添加面包屑

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何通过JSON / JS在Jenkins中为CSRF添加面包屑

它应该很容易。为了在詹金斯获得CSRF,您需要做的事情很少。

#1

提取有效的实际CSRF碎屑,为此应使用“ / crumbIssuer
”端点。AFAIK,这是一个受保护的端点,因此您应该使用API​​令牌或请求中的凭据对它进行身份验证的调用。这里我将如何用Javascript做到这一点:

// **** - is a placeholder for an auth token, replace it with yours$.get({    url: "https://my.jenkins.io/crumbIssuer/api/json",    contentType: "application/json",    headers: {        "User-Agent": "my_js_script",        "Authorization": "****"    }}).done(function(data) {    // this is how you fetch valid & actual CSRF crumb    console.log(data.crumbRequestField + " = " + data.crumb);});

#2

现在,由于您已经处理了有效且实际的CSRF碎屑,因此请与任何修改Jenkins状态的请求一起发送。可以说,有效的CSRF碎屑JSON看起来像这样:

{ "crumbRequestField": "Jenkins-Crumb", "crumb": "noop" }

因此,您的Ajax调用将看起来像这样(请注意一个额外的“ Jenkins-Crumb” HTTP标头):

// **** - is a placeholder for an auth token, replace it with yours// simply activates a job in Jenkins, requirement for cloned jobs (aka. "Create-A-Copy-From")$.post({    url: "https://my.jenkins.io/job/my_job/description",    contentType: "application/x-www-form-urlenpred; charset=UTF-8",    headers: {        "User-Agent": "my_js_script",        "Authorization": "****",        "Jenkins-Crumb": "noop" // makes CSRF filter in Jenkins happy    },    data: "description="});

这些Javascript片段不太可能完美,但希望能为您提供正确的方向。

我正在开发一个Jenkins API库的项目,但是使用Ruby。如果您需要阅读一些实际能满足您需求的源代码,那么以下文件可能是您感兴趣的文件:

  • jenkins-api / lib / jenkins / connection.rb(请参阅“ 滚动方法”);
  • jenkins-api / lib / jenkins / job.rb(请参见“ activate_job”方法);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/448957.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号