2014-10-30 90 views
0

我的受測試應用程序具有使用CSRF Token技術進行身份驗證的網絡請求序列。在JMeter中通過JQuery獲取身份驗證令牌集

我能夠得到_csrf令牌被設置通過:

"meta id="csrf" content=*_VALUE_*" 

其中一個連續的請求都jQuery來進行片段,設置"X-CSRF-Token"下個請求:

ajaxPrefilter = function(jQuery) { 

     jQuery.ajaxPrefilter(function(options, originalOptions, jqXHR) { 
     var csrfToken = jQuery('#csrf').attr('content'); 
     jqXHR.setRequestHeader('X-CSRF-Token, csrfToken); 

     }); 
}; 

X-CSRF-Token用於下一個順序請求的請求標題[即在先前的請求中通過JQuery設置],這導致在請求頭中具有請求參數X-CSRF-Token的所有網絡請求中的Forbidden error

如何克服由於令牌導致的「禁止」錯誤?
有什麼通過我可以得到在先前的請求中設置的JQuery參數[Token]值?

回答

0

這是經典的相關例子。看看代碼,我看到JQuery從csrf的東西中提取content屬性,並將其放入X-CSRF-Token標頭中。

複製此行爲:

  • 添加CSS/JQuery Extractor作爲第一請求的孩子
  • 其配置如下:
    • 參考名稱:任何有意義的事,即token
    • CSS/JQuery的表達:#csrf
    • 屬性:content

上述步驟將來自頁源提取CSRF令牌並將其存儲到token JMeter的變量。現在,您可以添加使用HTTP Header Manager

  • 添加一個HTTP標頭經理元素作爲請求的孩子這與「禁止」
  • 進行如下配置失敗相關的標題:
    • 名稱:X-CSRF-Token
    • 值:${token}

Repea對於所有受CSRF保護的請求,請執行以上步驟並獲取餅圖。

希望這會有所幫助。

+0

非常感謝。它爲我工作。 – 2014-10-30 09:46:09

相關問題