django之csrf攻击
Posted lirunsheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django之csrf攻击相关的知识,希望对你有一定的参考价值。
首先做一个登录页,让用户输入用户名和密码进行登录,登录成功之后跳转的修改密码页面。在修改密码页面输入新密码,点击确认按钮完成密码修改。
登录页需要一个模板文件login.html.修改密码页面也需要一个模板文件change_pwd.html.
显示登录页的视图login,验证登录的视图login_check,显示发帖页的视图change_pwd,处理修改密码的视图change_pwd_action.
加功能:
a)只有用户登录之后才可以进行修改密码操作。
登录装饰器函数。
案例流程图:
django防止csrf的方式:
1) 默认打开csrf中间件。
2) 表单post提交数据时加上% csrf_token %标签。
防御原理:
1) 渲染模板文件时在页面生成一个名字叫做csrfmiddlewaretoken的隐藏域。
2) 服务器交给浏览器保存一个名字为csrftoken的cookie信息。
3) 提交表单时,两个值都会发给服务器,服务器进行比对,如果一样,则csrf验证通过,否则失败。
以上是关于django之csrf攻击的主要内容,如果未能解决你的问题,请参考以下文章
自动化运维Python系列之Django CSRF跨站请求伪造中间件
利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击