Django之CSRF防护

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、CSRF是什么?

CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF,这是一种对网站的恶意利用,窃取网站用户信息来制造恶意请求。

二、CSRF防护机制

Django为了防护这类攻击,在用户提交表单时,表单会自动加入csrfmiddlewaretoken隐藏控件。这个控件值会与网站内的csrfmiddlewaretoken值进行匹配,匹配成功,网站才会处理表单数据。

防护原理简介

  1. 在用户访问网站时,网页表单中有一个隐藏控件csrfmiddlewaretoken,控件值由Django随机生成
  2. 提交表单验证表单隐藏控件值是否与Django保存的值一致

csrf防护函数相关介绍

  • 在HTML网页form表单中添加内置标签csrf_token可以实西安CSRF防护
  • 装饰器@csrf_exempt,取消某个视图函数的CSRF防护
  • 装饰器@csrf_protect,对某个视图函数开启CSRF防护【如果取消整个·网站的CSRF防护(注释settings的MIDDLEWARE的CSRF中间件),但又想对个别视图进行防护可用@csrf_protect】

csrf防护的一些补充

  • CSRF防护只适用于POST请求,并不防护GET请求。GET请求是以读写的方式访问网站资源的,一般不涉及网站数据的修改。

每日一图

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值