1
<input type="hidden" name="_csrf"
                    value="40ea7f46-799b-4ca0-b8cd-4adfba082aed" />

以上是我在请求输出中得到的令牌。我无法用 Jmeter 的正则表达式提取器中的正则表达式替换它。

<input type="hidden" name="_csrf" value="(.+?)" />不管用。

请帮忙。

4

3 回答 3

2

如果您的输入实际上包含换行符,那么您需要在您的正则表达式中考虑到这一点。此外,最好明确说明正则表达式中的有效字符,.+这很少是一件好事:

<input type="hidden"\s+name="_csrf"\s+value="([^"]+)"\s*/>
于 2016-12-01T10:17:45.240 回答
1

你必须小心spaces/newlines

尝试以下简单的正则表达式:

value="(.*?)"\s/>

如果它匹配多个元素,要添加唯一性,您可以在正则表达式中添加 name 属性,如下所示:

name="_csrf"\s+value="(.*?)"\s/>
于 2016-12-01T10:39:26.133 回答
0

这是不使用正则表达式解析 HTML的另一个证据,因为它们非常脆弱并且对最小的标记更改很敏感。更健壮和有弹性的解决方案是使用CSS/JQuery ExtractorXPath Extractor

  • 相关的 CSS 表达式是input[name=_csrf]value用作“属性”
  • 获取值的 XPath 查询是//input[@name='_csrf']/@value

有关在 JMeter 测试中绕过 XSRF 保护的详细信息,请参阅如何加载测试受 CSRF 保护的网站指南

于 2016-12-01T13:16:50.233 回答