当前位置:   article > 正文

POSTMAN解决CSRF问题小技巧_csrf验证失败. 请求被中断. postman

csrf验证失败. 请求被中断. postman

参考note2597429
参考blog
你们有没有遇到过这样的情况,相同的API,在环境A里测试,HTTP GET和HTTP POST都可以正常使用,但换一个环境就不能用了,即使输入了用户名和密码,GET时fetch了token,POST时也填写了GET的token,还是会报CSRF token validation failed的错误
在这里插入图片描述
这是和server的一个设置参数有关,用TCODE: SICF_SESSIONS可以看到这个值,如果是0,就用HTTP,如果是1,就用HTTPS,就这么简单。
在这里插入图片描述

解决办法有两个:

  1. 改HTTP为HTTPS,相应的端口也改掉,token一样要fetch和填写
  2. 加上参数cookie
    这个就是在填写token的同时,使用参数cookie,把两个cookie用分号 ‘;’ 拼一下,填到POST参数里
    在这里插入图片描述
    在这里插入图片描述

这样就可以正常POST,但每次POST前要先用GET取一下token和cockie,那有没有简单方便的办法呢,有,写个小脚本,用环境变量来填值。

如何利用Postman中的“环境变量”来自动执行post API调用

Step1: 创建新环境Environment

在这里插入图片描述

Step2: 创建新环境变量Environment Variable

也就是上面第二个方式,这里我们需要两个变量,‘XCSRFToken’和‘Cookie’
在这里插入图片描述
这里就相当于建了两个全局变量

Step3 建两个request,一个用来get token和cookie,一个用来post
  1. Get
    在这里插入图片描述
    在这里插入图片描述
    这里别忘了加这个Fetch来取Token
    最关键的地方就是在这写个小脚本来取值赋给两个环境变量
    在这里插入图片描述
//Fetch CSRF token from response header
sToken = pm.response.headers.get("x-csrf-token")

//Set CSRF Token in environment variable
pm.environment.set("XCSRFToken", sToken);

//Get all the response header
aHeaders = pm.response.headers.all()

//Declare array for cookies
aCookies = [];

//Get all the cookie value
for(i=0;i<aHeaders.length;i++){
    if(aHeaders[i].key == "set-cookie"){
        aCookies.push(aHeaders[i].value)
    }
}

//Concatenate all the cookie with semi-colon
sCookie = aCookies.join(";")

//Set cookie value to environment variable
pm.environment.set("Cookie",sCookie)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  1. Post
    在这里插入图片描述
    在这里插入图片描述
    在header加入这两个参数,不过value是用的变量
    再执行吧,肯定没问题了。
    还有,你造吗,一组request是可以指执行的,选中这个collection,直接点run
    在这里插入图片描述
    在这里插入图片描述
    这里也有一些可控制的参数,自己研究吧
    下面是执行的结果,可以看到每一个request的执行结果
    在这里插入图片描述
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/288934
推荐阅读
  

闽ICP备14008679号