提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 一、CSRF是什么?
- 二、CSRF防护机制
-
- 防护原理简介
- csrf防护函数相关介绍
- csrf防护的一些补充
- 每日一图
一、CSRF是什么?
CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF,这是一种对网站的恶意利用,窃取网站用户信息来制造恶意请求。
二、CSRF防护机制
Django为了防护这类攻击,在用户提交表单时,表单会自动加入csrfmiddlewaretoken隐藏控件。这个控件值会与网站内的csrfmiddlewaretoken值进行匹配,匹配成功,网站才会处理表单数据。
防护原理简介
- 在用户访问网站时,网页表单中有一个隐藏控件csrfmiddlewaretoken,控件值由Django随机生成
- 提交表单验证表单隐藏控件值是否与Django保存的值一致
csrf防护函数相关介绍
- 在HTML网页form表单中添加内置标签csrf_token可以实西安CSRF防护
- 装饰器@csrf_exempt,取消某个视图函数的CSRF防护
- 装饰器@csrf_protect,对某个视图函数开启CSRF防护【如果取消整个·网站的CSRF防护(注释settings的MIDDLEWARE的CSRF中间件),但又想对个别视图进行防护可用@csrf_protect】
csrf防护的一些补充
- CSRF防护只适用于POST请求,并不防护GET请求。GET请求是以读写的方式访问网站资源的,一般不涉及网站数据的修改。
每日一图