使用CSRF的Python请求会话

时间:2019-06-04 12:46:49

标签: python-3.x python-requests csrf

所以我有两段代码。 这个有效:

import requests

url = 'http://XXXXXX.com.au?xxxxx'
r = requests.get(url,auth = ('user', 'password'), headers = {'X-CSRF-TOKEN': 'Fetch'})
token = r.headers['x-csrf-token']
c = requests.utils.dict_from_cookiejar(r.cookies)

reqData = {'param' : 'value'}
headers = {'X-CSRF-TOKEN': token}
r = requests.post(url, auth = ('user', 'password'), data = reqData, headers = headers, cookies = c)

这不是:

import requests

s = requests.Session()
url = 'http://XXXXXX.com.au?xxxxx'

s.auth = ('user', 'password')
s.headers.update({'X-CSRF-TOKEN': 'Fetch'})
r = s.get(url)
token = r.headers['x-csrf-token']

c = s.cookies

reqData = {'param' : 'value'}
headers = {'x-csrf-token': token}
r = s.post(url, data=reqData, headers=headers, cookies=c)

我尝试了第二个代码,是否包含cookie的显式复制和传递,以及将其从cookiejar转换为dict。仍然无法获得CSRF令牌验证。

我现在很高兴使用第一个选项,但是我在本次会议中到底做错了什么?可能只是所讨论的Web服务器的特质吗?

0 个答案:

没有答案