zoukankan      html  css  js  c++  java
  • 通过Postman进行post请求时传递X-XSRF-TOKEN

    前言介绍

    这段时间一个项目后端用的是laravel。在写API接口时通过Postman6进行测试。但是在测试后形式的接口时laravel自带了CSRF验证机制。这就很尴尬了...

    所以我们的目的在使用Postman通过XSRF的验证,以测试POST的请求。还是以laravel为例子,Laravel会返回到浏览器的GET请求时将XSRF-TOKEN写在cookie中。因此我们需要从cookie中取到XSRF-TOKEN,并附在POST请求的报头中传送出去。以达到绕过Laravel的跨站请求伪造验证。

    安装Postman Interceptor(Chrome扩展功能)

    使用Postman如果通过自己拼接url,自己造数据,是非常麻烦的。因此选择Postman + Postman拦截器,使用Postman interceptor可以拦截到网页请求,同时传到postman的历史列表中,然后我们只需要在postman中修改一下网址就可以直接发送了。

    Laravel通过镀铬作为拦截器来记录的cookie,因此要先安装邮递员在Chrome浏览器上的扩展程序。

    下载地址:https//chrome.google.com/webstore/detail/postman-interceptor/aicmkgpgakddgnaphhhpliifpcfhicfo

    嗯......浏览下载安装需要翻墙...

    创建环境

    我们打开邮差,点击页面右上角,进行设定环境。

    新建evnironment

     

    输入新建的环境名称,并按下 “添加”

    选择刚刚新建的环境

      

    发送GET请求,以取得XSRF令牌

    新建一个获得请求,并在邮递员的测试标签中加入下面代码:

    pm.environment.set(
        "XSRF-TOKEN", //此為環境變數名稱
        decodeURIComponent(pm.cookies.get("XSRF-TOKEN"))
    )
     
    加入的这个代码会在请求服务器成功返回时执行,因此可以取得的cookie,并存入邮递员的环境变量,用来在后请求时使用。

    访问刚刚创建的get请求,点击发送,检查XSRF令牌是否在环境变量中

     

    POST附带XSRF令牌 

    Laravel预设要求发布时需要HTTP标头附带XSRF令牌

    以下是我测试的代码:

    //web.php
    Route::post('posttest', 'OperateController@postTest');
    
    
    //OperateController.php
    public function postTest(Request $request) {
        var_dump('post test');
    }
    新增POST标签,并在Header中增加XSRF令牌

    格式是:{{ “环境变量”}}:用来取得的环境变量值。

    X-XSRF-TOKEN:{{XSRF-TOKEN}}

    点击发送,成功打印

    以上

  • 相关阅读:
    postman的几个问题
    服了这个所谓北大青鸟官方学员社区论坛
    Gatling实战(三)
    Gatling实战(二)
    Gatling实战(一)
    httplib和urllib2常用方法
    jmeter的新增函数说明
    windows版jmeter的body data如何用 作为“换行”
    linux下oracle服务启动关闭
    linux下ORACLE监听日志的正确删除步骤
  • 原文地址:https://www.cnblogs.com/lishanlei/p/9550622.html
Copyright © 2011-2022 走看看