2014-10-30 91 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

相关问题