Django框架学习笔记(22.CSRF原理简单介绍)
来源:互联网 发布:淘宝采集软件收费吗 编辑:程序博客网 时间:2024/06/05 06:33
前面我们写Django的时候,都要在settings.py里把CSRF注释掉,这里其实是Django提供的一层防护,防止提交的数据含有XSS攻击,只有请求里面含有CSRF令牌(随机字符串)才可以通过,否则会被禁止。这里不注释掉也可以写:
<form action="/login/" method="POST"> {% csrf_token %} <input type="text" name="user"/> <input type="password" name="pwd"/> <input type="checkbox" name="rmb" value="1"/>一天内免登录 <input type="submit" value="登录"/></form>
ajax方式(提前配置ajax):
<body><form action="/login/" method="POST"> {% csrf_token %} <input type="text" name="user"/> <input type="password" name="pwd"/> <input type="checkbox" name="rmb" value="1"/>一天内免登录 <input type="submit" value="登录"/> <input id="btn1" type="button" value="按钮"/> <input id="btn2" type="button" value="按钮"/></form><script src="/static/jquery-1.12.4.js"></script><script src="/static/jquery.cookie.js"></script><script> $(function(){ $.ajaxSetup({ beforeSend:function(xhr,settings){ xhr.setRequestHeader('X-CSRFtoken',$.cookie('csrftoken')) } }); $('#btn1').click(function () { $.ajax({ url: '/login/', type: 'POST', data: {'user': 'root', 'pwd': '123'}, success:function(arg){ } }) }); $('#btn2').click(function () { $.ajax({ url: '/login/', type: 'POST', data: {'user': 'root', 'pwd': '123'}, success:function(arg){ } }) }) })</script></body>
views.py里面也可以设置是否使用CSRF:
当全局设置了CSRF时候,这样可以取消:
from django.views.decorators.csrf import csrf_exempt, csrf_protect@csrf_exemptdef index(request): if request.session.get('is_login', None): return render(request, 'index.html', {'username': request.session['username']}) else: return HttpResponse('错误')
当全局没有设置CSRF时候,这样可以添加:
from django.views.decorators.csrf import csrf_exempt, csrf_protect@csrf_protectdef index(request): if request.session.get('is_login', None): return render(request, 'index.html', {'username': request.session['username']}) else: return HttpResponse('错误')
阅读全文
0 0
- Django框架学习笔记(22.CSRF原理简单介绍)
- Django框架学习笔记(6.FBV和CBV简单介绍)
- Django框架学习笔记(23.中间件结合实例介绍)
- Django框架学习笔记(4.简单的总结)
- Django框架学习笔记(27.Ajax简单操作)
- Django CSRF 原理分析
- Django CSRF原理分析
- Laravel框架学习(CSRF)
- Django学习笔记(九)--django框架的bug总结
- CSRF简单介绍
- csrf攻击简单介绍
- Django框架全面讲解 -- 跨站请求伪造(csrf)
- Django框架学习笔记(10.基于ORM实现简单的用户登录)
- 转--Laravel框架学习(CSRF)
- python web框架Django学习(一)介绍篇
- CSRF攻击原理&Django的应用方法
- Django中CSRF防护原理及使用
- csrf学习笔记
- ScrollView加载里面的数据出现下滑(可能是焦点问题)
- 二叉查找树迭代器
- 宣传一下自己的私人博客
- 多线程学习(一)
- Java Thread API
- Django框架学习笔记(22.CSRF原理简单介绍)
- 剑指Offer(三)从尾到头打印链表
- 51nod 1416 两点 -dfs
- 七牛云简单上传图片 展示
- vue入门
- 二分答案0.1
- linux三个特殊权限setuid.setgid和stick bit使用详解
- MyBatis的Mapper接口动态代理
- 2.spring boot热启动,autowired自动加载,value注解,属性注入