跨站请求伪造保护 CSRF
1.跨站请求伪造攻击
某些恶意网站上包含链接、表单按钮或者JavaScript,它们会利用登录过的用户在浏览器中的认证信息试图在你的网站上完成某些操作,这就是跨站请求伪造。
2.CSRF
Cross-Site Request Forgey
跨 站点 请求 伪装
3.说明:CSRF中间件和模板标签提供对跨站请求伪造简单易用的防护。
4.作用:不让其它表单提交到此 Django 服务器
5.解决方案:
(1)取消 csrf 验证(不推荐)
删除 settings.py 中 MIDDLEWARE 中的 django.middleware.csrf.CsrfViewMiddleware
的中间件
(2)开放验证
在视图处理函数增加: @csrf_protect
@csrf_protect
def post_views(request):
pass
(3)通过验证
需要在表单中增加一个标签
{% csrf_token %}
练习:项目的注册部分
1.创建一个数据库 - FruitDay
2.创建实体类 - Users
uphone - varchar(11)
upwd - varchar(50)
uemail - varchar(245)
uname - varchar(20)
isActive - tinyint 默认值为1 (True)
3.完善注册 - /register/
如果是get请求,则去往register.html
如果是post请求,则处理请求数据 将提交的数据保存回数据库