通過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}}

點擊發送,成功打印

 

 

以上


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM