JMeter CSRFToken認證登陸(正則提取器的使用)


轉自: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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM