使用 requests 登录 xsrf
验证的网站,
理解 xsrf
跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。
requests 实现
requests库是一个常用的用于http请求的模块,它使用python语言编写,可以方便的对网页进行爬取。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import sys
import requests
URL = 'http://xxxxxxx/sign-in'
client = requests.session()
# Retrieve the CSRF token first
client.get(URL) # sets cookie
csrftoken = client.cookies['_xsrf']
print csrftoken
EMAIL = "xxxx"
PASSWORD = "xxxx"
login_data = dict(name=EMAIL, password=PASSWORD, _xsrf=csrftoken, next='/')
#r = client.post(URL, data=login_data, headers=dict(Referer=URL))
r = client.post(URL, data=login_data)
print r.status_code
print r.text
print r.json()
原理
首先第一次请求,取到服务端响应的cookies,然后再携带cookies 模拟浏览器请求。
本文网址: https://pylist.com/topic/98.html 转摘请注明来源