模拟登录Django csrf验证 及 django_cas_server 模块验证
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了模拟登录Django csrf验证 及 django_cas_server 模块验证,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1806字,纯文字阅读大概需要3分钟。
内容图文
![模拟登录Django csrf验证 及 django_cas_server 模块验证](/upload/InfoBanner/zyjiaocheng/983/1ff7e564fcaa4214909713e99e4abdf8.jpg)
直接上源码
# -*- coding:utf-8 -*-
"""
Created on 2017/7/1
@author: jj
模拟 csrf
csrf 验证cookie 中的 csrftoken 和 post 请求中的 csrfmiddlewaretoken 是否一致
再验证是否为 服务其发出的 csrftoken
cas 验证规则
在 csrf 的基础上验证 post 请求中 lt
"""
import urllib
import urllib2
import requests
import re
import cookielib
headers = [('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36')]
login_url = "http://127.0.0.1:8000/cas/login" # POST发送到的网址
# login_url = "http://127.0.0.1:8000/admin/login/?next=/admin/" # POST发送到的网址
filename = 'cookie.txt'
def login(par1):
cookie = cookielib.MozillaCookieJar()
# 从文件中读取cookie内容到变量
cookie.load(filename, ignore_discard=True, ignore_expires=True)
# 创建请求的request
postdata = urllib.urlencode(par1)
# 利用urllib2的build_opener方法创建一个opener
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
opener.addheaders.append(headers[0])
opener.addheaders.append(headers[1])
response = opener.open(login_url, postdata)
print response.read()
def save_cookie():
ckjar = cookielib.MozillaCookieJar(filename)
ckproc = urllib2.HTTPCookieProcessor(ckjar)
opener = urllib2.build_opener(ckproc)
f = opener.open(login_url)
content = f.read()
pattern_csrf = re.compile(r"name='csrfmiddlewaretoken' value='(.*?)' />", re.S)
pattern_lt = re.compile(r'<input id="id_lt" name="lt" type="hidden" value="(.*?)" />', re.S)
csrf = re.findall(pattern_csrf, content)
lt = re.findall(pattern_lt, content)
f.close()
ckjar.save(ignore_discard=True, ignore_expires=True)
return csrf[0], lt[0]
if __name__ == "__main__":
csrf, lt = save_cookie()
headers.append(('csrftoken', csrf))
data = {"username": "admin",
"password": "admin",
"csrfmiddlewaretoken": csrf,
"lt": lt,
"renew": 'False',
"warn": 'on'}
login(data)
返回结果
内容总结
以上是互联网集市为您收集整理的模拟登录Django csrf验证 及 django_cas_server 模块验证全部内容,希望文章能够帮你解决模拟登录Django csrf验证 及 django_cas_server 模块验证所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。