csrf

Django --- csrf相关,auth相关

北城以北 提交于 2019-12-06 15:30:18
目录 1.csrf相关 1.跨站请求伪造 2.跨站请求伪造问题解决 3.crsf中间件 4.csrf装饰FBV的装饰器 5.csrf装饰CBV的装饰器 6.django settings源码刨析 2.auth模块 1.创建超级用户 2.创建用户 3.校验用户名和密码是否正确 4.保存用户登录状态 5.判断当前用户是否登录 6.校验原密码是否正确 7.修改密码 8.注销 9.校验用户登录的登录装饰器 10.auth扩展表 1.csrf相关 1.跨站请求伪造 跨站请求伪造:当用户访问一个网站的时候,搭建一个与用户想要访问的网站一摸一样的网站,使假网站的提交地址与站网站的一致,这时候用户访问的是假网站,但是操作却是在真网站上进行反馈的,例如银行网站。 原理:后端只能识别post请求,但是不能识别是不是自己网站返回的post请求 注意点: 1.真假网站的页面一致 2.提交请求的form表单中的action指向正确的网页地址,在提交的时候让后端以为是真网页提交过来的数据 3.在假网站中做一些操作,使用户在进行操作的时候默认的是假网站的设置提交的 2.跨站请求伪造问题解决 思路:只处理自己的网站发送过来的POST请求 解决方式:token 1.token token的特性是, 发送请求的时候:网站返回给用户一个form表单的时候,会自动添加一个token值发送到前端的页面中,这个token值是

day59 csrf auth

 ̄綄美尐妖づ 提交于 2019-12-06 15:24:29
importlib模块 #bbb.py name='from bbb' #aaa.py import importlib res = 'lib.bbb' # 利用字符串的形式导入模块 md = importlib.import_module(res) # from lib import bbb print(md) # 该模块字符串最小单位只能到文件名 # <module 'lib.bbb' from 'D:\\pycharm\\前端\\untitled\\import_idea\\lib\\bbb.py'> print(md.name) # from bbb 基于django中间件的思想 实现功能的配置使用 通知功能,邮件,短信,微信发送 #notify.py def send_email(content): print('邮箱通知%s'%content) def send_msg(content): print('短信通知%s'%content) def send_wechat(content): print('微信通知%s'%content) #start.py from 初级思想.notify import * def send_all(content): send_msg(content) send_email(content) send_wechat(content)

12.5 csrf校验和auth模块

梦想的初衷 提交于 2019-12-06 15:18:05
1.基于django中间件的拷贝思想 需求:实现三种通知功能 #方式一: #notify.py def send_email(content): print('邮箱通知:%s'% content) def send_msg(content): print('短信通知:%s'% content) def send_wechat(content): print('微信通知:%s'% content) #start.py from first.notify import * def send_all(content): send_msg(content) send_email(content) send_wechat(content) if __name__ == '__main__': send_all('后天是周末') #方式二: #lib文件夹 #bbb.py name='from bbb' #aaa.py import importlib res='lib.bbb' #利用字符串形式导入模块 md=importlib.import_module(res) #这句相当于 from lib import bbb print(md) #该模块字符串最小单位只能到文件名 #settings.py NOTIFY_LIST=[ 'notify.email.Email', 'notify

day61

£可爱£侵袭症+ 提交于 2019-12-06 15:12:54
目录 跨站请求伪造csrf form表单解决 ajax如何解决 csrf相关的装饰器 django settings源码剖析 auth模块 auth模块常用方法 如何创建超级用户(root) 创建用户: 校验用户名和密码是否正确: 保存用户登录状态 判断当前用户是否登录 校验原密码是否正确 修改密码 注销 校验用户是否登录装饰器 如何扩展auth_user表字段 跨站请求伪造csrf 钓鱼网站 你自己写一个跟中国银行正规网站一模一样的页面 用户输入用户名 密码 对方账户 转账金额提交 请求确实是朝中国银行的接口发送的 钱也扣了 但是对方账户变了 变成了钓鱼网站自己提前设置好的账户 ​ 如何实现 ​ 你在写form表单的时候 让用户填写的对方账户input并没有name属性 ​ 而是你自己在内部偷偷隐藏了一个具有name属性的input框 ​ 并且value值是你自己的账户 然后将该标签隐藏了 ​ 模拟该现象的产生 ​ 创建两个django项目 ​ 如何解决该问题 ​ 只处理本网站发送的post请求 ​ 如何识别如何判断当前请求是否是本网张发出的 ​ 解决 ​ 网站在返回给用户一个form表单的时候 会自动在该表单隐藏一个input框 ​ 这个框的value是一个随机字符串 但是网站能够记住每一个浏览器发送的随机字符串 form表单解决 以后在写form表单的时候

12.05

谁说我不能喝 提交于 2019-12-06 15:12:53
目录 importlib 模块 基于django中间件的思想实现功能配置 跨站请求伪造csrf auth模块 importlib 模块 利用字符串导入模块 只能写到文件名为止,不能写内部的变量名 利用反射解决变量名问题 基于django中间件的思想实现功能配置 以模块的方式导入 # notify.py def send_email(content): print('邮箱通知:%s'%content) def send_msg(content): print('短信通知:%s'%content) def send_wechat(content): print('微信通知:%s'%content) # start.py from notify import * def send_all(content): send_msg(content) send_email(content) send_wechat(content) if __name__ == '__main__': send_all('再坚持一天就周末了') 以配置文件的形式 # settings.py NOTIFY_LIST = [ 'notify.email.Email', 'notify.msg.Msg', 'notify.wechat.WeChat', 'notify.qq.Qq', ] import settings

跨站请求伪造csrf和auth模块

こ雲淡風輕ζ 提交于 2019-12-06 15:11:27
目录 跨站请求伪造csrf 如何设置 ajax设置 方式一(J较为繁琐): 方式二(较为简单): 方式三(推荐): csrf相关装饰器 auth模块 如何拓展auth_user表字段 方式一: 方式二: 跨站请求伪造csrf 如何设置 你只要在写form表单的时候,只要在在表单中写一个{% csrf_token %} ''' <form action="" method="post"> {% csrf_token %} <p>username:<input type="text" name="username"></p> <p>target_account:<input type="text" name="target_user"></p> <p>money:<input type="text" name="money"></p> <input type="submit"> </form> 网站在返回给用户一个form表单的时候 会自动在该表单隐藏一个input框 这个框的value是一个随机字符串 但是网站能够记住每一个浏览器发送的随机字符串 ''' ajax设置 方式一(J较为繁琐): ''' 先在页面任意的位置上书写{% csrf_token %} 然后在发送ajax请求的时候 通过标签查找获取随机字符串添加到data自定义对象即可 data:{'username':'jj'

CSRF 跨站

南楼画角 提交于 2019-12-06 15:07:58
目录 CSRF 跨站请求伪造 解决跨站伪造问题: csrf 相关的装饰器: csrf.js文件: CSRF 跨站请求伪造 CSRF全称为Cross-site request forgery,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。   CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。 CsrfViewMiddleware的作用: 在render返回页面的时候,在页面中塞了一个隐藏的input标签;当你提交POST数据的时候,它帮你做校验,如果校验不通过就拒绝这次请求 跨站请求伪造csrf : 1.网站的搭建 : 写一个跟正规网站一模一样的页面;用户输入用户名 密码 对 方账户 转账金额提交,请求确实是朝银行的接口发送的 钱也扣了 但是对方账户变了 变成了钓鱼网站自己提前设置好的账户 2,钓鱼网站功能的实现 : 填写form表单的时候 让用户填写的对方账户input并没有name属性,是你自己在内部偷偷隐藏了一个具有name属性的input框,并且value值是你自己的账户 然后将该标签隐藏了 解决跨站伪造问题: 解决跨站问题 : 1

day 59

*爱你&永不变心* 提交于 2019-12-06 15:03:50
day 59 01.importlib 模块 利用字符串导入模块 只能写到文件名为止,不能写内部的变量名 利用反射解决变量名问题 01.基于django中间件的思想实现功能配置 以模块的方式导入 # notify.py def send_email(content): print('邮箱通知:%s'%content) def send_msg(content): print('短信通知:%s'%content) def send_wechat(content): print('微信通知:%s'%content) # start.py from notify import * def send_all(content): send_msg(content) send_email(content) send_wechat(content) if __name__ == '__main__': send_all('再坚持一天就周末了') 以配置文件的形式 # settings.py NOTIFY_LIST = [ 'notify.email.Email', 'notify.msg.Msg', 'notify.wechat.WeChat', 'notify.qq.Qq', ] import settings import importlib def send_all(content):

CSRF利用

放肆的年华 提交于 2019-12-06 14:45:18
使用burpsuite的csrf poc选项,可以生成HTML代码 json CSRF flash + 307跳转 https://github.com/sp1d3r/swf_json_csrf 来源: https://www.cnblogs.com/yoyoyang/p/11990743.html

Using fileuploader.js in codeigniter along with csrf in ajax

风格不统一 提交于 2019-12-06 12:23:08
问题 How do I use fileuploader.js in Codeigniter with csrf, in ajax? I am using the images_crud library http://www.web-and-development.com/image-crud-an-automatic-multiple-image-uploader-for-codeigniter/ I keep getting The action you have requested is not allowed. Added.. I have added the create method in the controller : /** * pages form */ public function create(){ if(!isset($this->data['output'])){ $this->data = array_merge($this->data, array( 'output' => '' , 'js_files' => array() , 'css_files