【问题标题】:Getting authentication token set through JQuery in JMeter在 JMeter 中通过 JQuery 获取身份验证令牌集
【发布时间】:2014-12-26 05:38:39
【问题描述】:

我正在测试的应用程序具有使用CSRF Token 技术进行身份验证的网络请求序列。

我能够获得_csrf 令牌,它是通过以下方式设置的:

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

其中一个顺序请求具有 JQuery sn-p 设置 "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 [i.e.在先前的请求中通过 JQuery 设置],这会导致在请求标头中具有请求参数 X-CSRF-Token 的所有网络请求中的 Forbidden error

如何克服因 Token 引起的“Forbidden”错误?
有什么东西可以让我获得以前请求中设置的 JQuery 参数 [Token] 值吗?

【问题讨论】:

    标签: jquery jmeter csrf jmeter-plugins


    【解决方案1】:

    这是经典的相关示例。查看代码,我看到 JQuery 从具有 id csrf 的东西中提取 content 属性并将其放入 X-CSRF-Token 标头中。

    复制这种行为:

    • CSS/JQuery Extractor 添加为第一个请求的子项
    • 配置如下:
      • 参考名称:任何有意义的名称,即token
      • CSS/JQuery 表达式:#csrf
      • 属性:content

    上述步骤将从页面源中提取 CSRF 令牌并将其存储到 token JMeter 变量中。您现在可以使用HTTP Header Manager添加相关标题

    • 添加 HTTP 标头管理器元素作为因“禁止”而失败的请求的子元素
    • 配置如下:
      • 姓名:X-CSRF-Token
      • 值:${token}

    对所有受 CSRF 保护的请求重复上述步骤并获取饼图。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2017-06-13
      • 1970-01-01
      • 2017-01-19
      • 2012-06-03
      • 2022-09-28
      • 2015-06-21
      • 1970-01-01
      • 2016-12-07
      • 2012-05-26
      相关资源
      最近更新 更多