【问题标题】:How to extract CSRF cookie from request and send into HTTP Request without using parameter in JMeter如何从请求中提取 CSRF cookie 并发送到 HTTP 请求而不使用 JMeter 中的参数
【发布时间】:2017-11-11 16:30:10
【问题描述】:

我是 JMeter 的新手。我正在执行登录测试。我正在尝试提取 CSRF 令牌,但我不明白。不知道怎么解决。

request data

regular expression extractor

当我尝试将 CSRF 令牌 - “引用名称”放入 HTTP 请求 - “参数”时,我得到了错误。

HTTP Request - Parameters

我被困在这里了。我不知道如何放置 CSRF 令牌 - 没有“参数”的“参考名称”。请帮帮我。

【问题讨论】:

  • 我知道这不是一个答案,但是cookie中的那个token并没有提供任何针对csrf的保护,也没有实现双重发布的参数。 :) (或者我们看不到 post 参数?我不知道 JMeter。)

标签: parameters request jmeter csrf


【解决方案1】:

要在带有 JSON 正文的 POST 请求中发送参数,您可以在 Path 字段之后添加参数?签名,在你的情况下添加

?csrf=${token}

【讨论】:

    【解决方案2】:

    首先,您应该使用浏览器进行导航,分析 交通并模仿它。

    Chrome 有一个工具可以做到这一点,或者你可以使用 Fiddler。 一般来说,CSRF第一次从服务器返回是作为cookie返回的,那么它必须同时作为cookie和header返回。

    有时值会发生变化,即使在同一个会话中也是如此。 请注意这一点。

    所以你必须:

    • 插入 cookie 管理器(在项目的顶层)
    • 从响应头中提取值(每次更改时)
    • 在以下所有请求中将其作为标头参数插入

    【讨论】:

      【解决方案3】:

      将 cookie 提取到 JMeter Variable 的最简单方法是使用 HTTP Cookie Manager

      1. 将 HTTP Cookie 管理器添加到您的测试计划中
      2. 将下一行添加到 user.properties 文件(位于 JMeter 安装的“bin”文件夹中)

        CookieManager.save.cookies=false
        
      3. 重启 JMeter 以获取属性

      当 cookie 来自服务器时,您将能够在需要时以 ${COOKIE_csrftoken} 访问它。

      更多信息:HTTP Cookie Manager Advanced Usage - A Guide

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-17
        • 1970-01-01
        • 1970-01-01
        • 2013-06-08
        • 1970-01-01
        • 1970-01-01
        • 2020-08-24
        • 2011-02-01
        相关资源
        最近更新 更多