【发布时间】:2017-09-01 06:29:39
【问题描述】:
我已经用使用 csrf 令牌的 html 登录表单记录了基本的 Apache Jmeter 场景。
应用程序记录的示例令牌如下所示:
<input id="csrf_token" name="csrf_token" type="hidden" value="IjU5NzBhMmI3ODNjZGVjMGUwYmI2YTU4ZjRkMTk0MjI0MTg3OTJlNDAi.C8ecSA.PkvdB0aM2M0rfhSLcb_ktyeInfs">
使用 Apache Jmeter 后处理器 (REGEX) 我使用以下表达式提取值:
input id="csrf_token" name="csrf_token" type="hidden" value="(.+?)"
结果是成功的,并且值被分配给 CSRF_VALUE 变量。
在下一步中,我将带有登录信息的令牌发送到网站,发布数据如下所示:
username=username&password=password&csrf_token=IjU5NzBhMmI3ODNjZGVjMGUwYmI2YTU4ZjRkMTk0MjI0MTg3OTJlNDAi.C8ecSA.PkvdB0aM2M0rfhSLcb_ktyeInfs&submit=Zaloguj+si%C4%99
但是网站返回 csrf 令牌不匹配的错误。在记录的场景和修改的场景之间唯一改变的是在后续请求中提取和放置 csrf 令牌。每次我重播这个场景时,我都会检查结果,结果显示 csrf token received == csrf token sent。但是登录失败并出现同样的错误 - csrf 令牌不匹配。
到目前为止,我不知道出了什么问题,非常简单的场景,但还是有问题。我正在使用 apache jmeter 3.1。
【问题讨论】:
-
真的吗?从昨天开始,我就在处理同样的问题。