<input type="hidden" name="_csrf"
value="40ea7f46-799b-4ca0-b8cd-4adfba082aed" />
以上是我在请求输出中获得的令牌。我无法用Jmeter的正则表达式提取器中的正则表达式替换它。
<input type="hidden" name="_csrf" value="(.+?)" />
无效。
请帮忙。
答案 0 :(得分:2)
如果您的输入实际上包含换行符,那么您需要在正则表达式中考虑该输入。此外,最好明确你的正则表达式中的有效字符,.+
很少是好事:
<input type="hidden"\s+name="_csrf"\s+value="([^"]+)"\s*/>
答案 1 :(得分:1)
你必须小心spaces/newlines
。
尝试使用以下简单的正则表达式:
value="(.*?)"\s/>
如果它匹配多个元素,要添加uniquness,可以在正则表达式中添加name属性,如下所示:
name="_csrf"\s+value="(.*?)"\s/>
答案 2 :(得分:0)
这是not using regular expressions to parse HTML的另一个证据,因为它们非常脆弱且对最小标记更改很敏感。更强大,更有弹性的解决方案是使用CSS/JQuery Extractor或XPath Extractor代替。
input[name=_csrf]
,使用value
作为&#34;属性&#34; //input[@name='_csrf']/@value
有关在JMeter测试中绕过XSRF保护的详细信息,请参阅How to Load Test CSRF-Protected Web Sites指南