转自:http://blog.csdn.net/lion19930924/article/details/51189210

前几天用JMeter模拟登陆,但是这个网站开启了csrf认证,因此在post表单需要提供csrftoken认证。这里我用到了Jmeter正则提取器。

1 CSRF

CSRF(Cross-site requestforgery跨站请求伪造,也被称为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。它通常发生在当某个恶意Web站点诱骗用户不知不觉的从一个信任站点下载某个URL之时,这个信任站点已经被通过信任验证,因此恶意站点就利用了这个被信任状态。下图便是csrf攻击的思想:

我在博客上也转载一篇关于csrf的介绍,有关csrf的攻击实例可以看这篇博客。

http://blog.csdn.net/lion19930924/article/details/50955000

2 解决方案

在模拟具有csrf认证的网站的登陆时,我们需要先访问一次该网站,获取服务器返回的cookie,在下次发送请求的时候带上这个cookie,则可以完成登陆。

3 JMeter CSRF TOKEN认证登陆

用JMeter模拟登陆的过程,需要用到正则提取器,获取服务器返回的cookie,具体的过程如下:

1          添加一个HTTP request sampler,命名为logintest

2          在这个request sampler中填写需要登陆的地址,以及需要登陆的用户名和密码

3          在logintest中添加regular expression extractor,我们把它命名为csrf_token

4          在csrf_token中我们将 Reference Name命名为 CSRF_TOKEN,regular expression是Set-Cookie: csrftoken=(.+?);,Template是$1$。

5          同样的方法我们再添加一个regular expression extractor,命名为session_id,这里我们要获取的是服务器返回的session_id,所以它的正则表达式和csrf_token的写法是相似的。这里不再做详细描述。

6          再添加一个HTTP request sampler,命名为login,这里的地址和用户名和密码和logintest填写的保持一致,不过需要添加一个csrfmiddlewaretoken,它的值是我们在login中获取的csrf_token的值。

7          这里我们再点击运行,就可以发现登陆成功了,JMeter模拟成功。

有关JMeter的正则表达式,大家可以通过下面这个网站进行了解:

http://jmeter.apache.org/usermanual/regular_expressions.html

JMeter CSRFToken认证登陆(正则提取器的使用)的更多相关文章

  1. 细雨学习笔记:Jmeter上一个请求的结果作为下一个请求的参数--使用正则提取器

    Jmeter接口自动化--使用正则提取器,可以把上一个请求的结果取出来,作为下一个请求的入参

  2. Jmeter正则提取器常用的几种方式

    使用jmeter的同学都知道,jmeter提供了各种各样的提取器,如jsonpath.Beanshell.Xpath.正则等!!! 我们就针对正则提取器如何使用进行说明. 举例说明:假设取sessio ...

  3. JMeter 如何把上一个请求的结果作为下一个请求的参数 —— 使用正则提取器

    有这样一个压力测试环境,有一个上传页面,上传成功之后服务器会返回一些上传信息(比如文件的 id 或者保存路径之类的信息),然后压力机会继续下一个请求,比如调整 id 为 xx 的文件的一些信息等等.问 ...

  4. Jmeter系列(27)- 详解正则提取器

    如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 有了 JSON 提取器为啥还要用正则提 ...

  5. Jmeter(5)JSON提取器

    Jmeter后置处理器-JSON提取器 JSON是一种轻量级数据格式,以"键-值"对形式组织数据. JSON串中{}表示对象,[]表示对象组成的数组.对象包含多个"属性& ...

  6. 记录一次群答问:jmeter正则提取器轻松提取一个及多个值

    图截得比较完整,电脑端浏览器放大倍数看吧^_^,手机端可以点击图片然后放大看. 一个正则提取问题 前几天,在Q群和微信群里被同时@,咨询这样一个问题:服务器返回:name="tom" ...

  7. JMeter 将上一个请求的结果作为下一个请求的参数——使用正则提取器(转载)

    在接口测试和压力测试过程中,经常会将几个流程串联起来才能测试.如:我要进行获取用户信息接口测试,我就要先登录成功后,才能获取用户信息.所以,我就要首先要登录,获得我的登录凭证(tokenId或tick ...

  8. jmeter 如何将上一个请求的结果作为下一个请求的参数——使用正则提取器

    1.简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域. 它可以用于测试静态和动态资源例如 ...

  9. 【转】jmeter 如何将上一个请求的结果作为下一个请求的参数——使用正则提取器

    1.简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域. 它可以用于测试静态和动态资源例如 ...

随机推荐

  1. pyqt5加载pdf文档失败

    import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog from PyPDF2 import Pdf ...

  2. php请求相关

    参数接收 原生 $_POST 接收application/x-www.form-urlencoded 和multipart/form-data,对body中的数据进行urldecode解码 file_ ...

  3. postman请求(请求方式、请求url、请求参数、参数类型、请求头)

    请求方式:get 请求地址: 请求参数:url与参数用?间隔,多个参数用&间隔 请求方式:post 请求地址: 请求参数: 请求参数格式:前面两种是key-value.第三种可以选择json/ ...

  4. spring中JdbcTemplate使用

    1.maven依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...

  5. 题解【洛谷P2730】魔板 Magic Squares

    题面 首先我们可以发现,在每一次 BFS 时按照 \(A→B→C\) 的顺序枚举遍历肯定是字典序最小的. 然后就是普通的 BFS 了. 我们考虑使用 \(\text{STL map}\) 来存储起点状 ...

  6. centos7查看启动的进程并杀死

    https://www.cnblogs.com/aipiaoborensheng/p/7676364.html ps -a -H kill -9 pid

  7. sublime—text终端无法输入,不支持scanf、input等语法问题的解决

    sublimetext是个很好用的轻量编辑器,,支持多语言语法高亮,自动补全,快捷键编译运行,而且ui也不错挺简洁,我一直在用.我之前浏览帖子时候看到有些人也在用这个编辑器. 但是吧,这个编辑器的的编 ...

  8. JMeter-做性能测试从何开始

    JMeter-性能测试 参考文档:https://jmeter.apache.org/usermanual/boss.html 一.问题 1.预计的平均用户数是多少(正常负载)? 2.预计的高峰用户数 ...

  9. 内网IPC$入侵加pstools之远程控制

    前言: IPC$(Internet process connection)是指内网里面的文件共享连接,通常很多机子的默认共享都是打开的,在cmd下使用命令net share可查看自己的IPC$是否打开 ...

  10. IO流学习之File类

    File类 Java文件类以抽象的方式代表文件名和目录路径名.该类主要用于文件和目录的创建.文件的查找和文件的删除等. File对象代表磁盘中实际存在的文件和目录.就是把文件和目录转换成对象,读取到内 ...