浅谈CSRF攻击方式
来源:互联网 发布:淘宝怎么查历史最低价 编辑:程序博客网 时间:2024/06/05 14:47
CSRF 简介:
CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。其缺点包括以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账……造成的问题包括:个人隐私泄露以及财产安全。
CSRF的原理
从上图可以看出,要完成一次CSRF攻击,受害者必须依次完成两个步骤:
1.登录受信任网站A,并在本地生成Cookie。
2.在不登出A的情况下,访问危险网站B。
看到这里,你也许会说:“如果我不满足以上两个条件中的一个,我就不会受到CSRF的攻击”。是的,确实如此,但你不能保证以下情况不会发生:
1.你不能保证你登录了一个网站后,不再打开一个tab页面并访问另外的网站。
2.你不能保证你关闭浏览器了后,你本地的Cookie立刻过期,你上次的会话已经结束。(事实上,关闭浏览器不能结束一个会话,但大多数人都会错误的认为关闭浏览器就等于退出登录/结束会话了……)
3.上图中所谓的攻击网站,可能是一个存在其他漏洞的可信任的经常被人访问的网站。
解决方案:
防护CSRF 攻击的第一道防线是保证GET 请求(以及在9.1.1 Safe Methods, HTTP 1.1, RFC 2616 中定义的其它安全的方法)不会产生副作用。通过不安全的请求方法例如POST、PUT 和DELETE 可以通过以下步骤进行防护。
在使用POST 表单的模板中,对于内部的URL请在 元素中使用csrf_token 标签:
<form action="." method="post">
手工导入并使用处理器来生成CSRF token,并将它添加到模板上下文中
from django.shortcuts import render_to_responsefrom django.template.context_processors import csrfdef my_view(request): c = {} c.update(csrf(request)) # ... view code here return render_to_response("a_template.html", c)
您可以对需要保护的特定视图使用csrf_protect装饰器,而不是添加CsrfViewMiddleware作为整体保护。
装饰器为视图提供CsrfViewMiddleware的保护
from django.views.decorators.csrf import csrf_protectfrom django.shortcuts import render@csrf_protectdef my_view(request): c = {} # ... return render(request, "a_template.html", c)
参考文档:
https://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
http://python.usyiyi.cn/django/ref/csrf.html
- 浅谈CSRF攻击方式
- 浅谈CSRF攻击方式
- 浅谈CSRF攻击方式
- 浅谈CSRF攻击方式
- 浅谈CSRF攻击方式
- 浅谈CSRF攻击方式
- 浅谈CSRF攻击方式
- 浅谈CSRF攻击方式
- 浅谈CSRF攻击方式
- 浅谈CSRF攻击方式
- 浅谈CSRF攻击方式
- 浅谈CSRF攻击方式
- 浅谈CSRF攻击方式
- 浅谈CSRF攻击方式
- 浅谈CSRF攻击方式
- 浅谈CSRF攻击方式
- 浅谈CSRF攻击方式
- 浅谈CSRF攻击方式
- 进程间通信和线程间同步区别
- Java程序从mysql读出时间后面多.0
- 使用hadoop进行排序时报错 Error: java.lang.ClassCastException
- 方便你我他的四个开源调查工具
- Android代码混淆之混淆规则
- 浅谈CSRF攻击方式
- css3实现鼠标移到图片上图片缓慢变大
- VMWare虚拟机提示:锁定文件失败,打不开磁盘的解决办法+查看虚拟机安装目录
- servlet和Spring的DispatcherServlet详解
- PAT 1008. Elevator (20)
- springmvc idea 运行 404
- my-mind在线思维导图软件
- ajax提交整个表单的快捷方式
- 河南工业大学2017“玲珑杯”程序设计竞赛 04