模拟登陆通过csrftoken验证

问题:想模拟web端请求,但是发现仅带了登录的session会报403,查看请求头发现还需要携带csrftoken,所以开始研究csrftoken

csrftoken:为了防止跨站域请求伪造,有的网站请求中会加入这个验证,在登录及登录后续的操作都会让你携带csrftoken,问题在于csrftoken每次刷新界面都要发生变化,所以查到csrf生成的位置就是关键所在,有的网站会把csrftoken放在html代码中返回给前端,这种找起来会比较简单,但我想模拟的这个网站csrftoken获取方式是这样的:

1.请求中有一个类似csrf.js的请求,在返回的一堆js代码中找到获取csrftoken的方法,找到获取csrftoken的网址;

 
 

2.然后编写接口请求时每次请求前都要获取一次csrftoken,提取出token;
'''
url_gettoken = "http:****/api/getcsrftoken"
h = httplib2.Http('.cache')
r,c = h .request(url_gettoken, 'GET')
ss = json.dumps(r)
sf =json.loads(ss)[u'set-cookie']
csrftoken = re.findall(r"csrftoken=(.+?);",sf)[0]
'''
3.然后在你下面的请求头中加入csrftoken:
'''
openner1.addheaders.append(('X-CSRFToken',sc))


==================
作者:抓虫的蜗牛
链接:https://www.jianshu.com/p/47b00ee963d2

原文地址:https://www.cnblogs.com/silyvin/p/12102998.html