模拟登录Django csrf验证 及 django_cas_server 模块验证
2021/5/12 18:55:15
本文主要是介绍模拟登录Django csrf验证 及 django_cas_server 模块验证,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
直接上源码
# -*- 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 模块验证的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-25Google Cloud动手实验详解:如何在Cloud Run上开发无服务器应用
- 2024-10-24AI ?先驱齐聚 BAAI 2024,发布大规模语言、多模态、具身、生物计算以及 FlagOpen 2.0 等 AI 模型创新成果。
- 2024-10-20goland工具下,如修改一个项目的标准库SDK的版本-icode9专业技术文章分享
- 2024-10-17Go学习:初学者的简单教程
- 2024-10-17Go学习:新手入门完全指南
- 2024-10-17Golang学习:初学者入门教程
- 2024-10-17Golang学习:新手入门教程
- 2024-10-17Gozero学习指南:初学者必备教程
- 2024-10-17GoZero学习:新手入门与实践指南
- 2024-10-17Go Zero入门:新手必读指南