Cross-site request forgery:跨站请求伪造,也被称成为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

  示例和特性

  CSRF攻击通过在授权用户访问的页面中包含链接或者脚本的方式工作。例如:一个网站用户Bob可能正在浏览聊天论坛,而同时另一个用户Alice 也在此论坛中,并且后刚刚发布了一个具有Bob银行链接的图片消息。设想一下,Alice编写了一个在Bob的银行站点上进行取款的form提交的链接,并将此链接作为图片tag。如果Bob的银行在cookie中保存他的授权信息,并且此cookie没有过期,那么当Bob的浏览器尝试装载图片时将提交这个取款form和他的cookie,这样在没经Bob同意的情况下便授权了这次事务。

  CSRF是一种依赖web浏览器的、被混淆过的代理人攻击(deputy attack)。在上面银行示例中的代理人是Bob的web浏览器,它被混淆后误将Bob的授权直接交给了Alice使用。

  下面是CSRF的常见特性:

依靠用户标识危害网站
利用网站对用户标识的信任
欺骗用户的浏览器发送HTTP请求给目标站点
风险在于那些通过基于受信任的输入form和对特定行为无需授权的已认证的用户来执行某些行为的web应用。已经通过被保存在用户浏览器中的cookie进行认证的用户将在完全无知的情况下发送HTTP请求到那个信任他的站点,进而进行用户不愿做的行为。
使用图片的CSRF攻击常常出现在网络论坛中,因为那里允许用户发布图片而不能使用JavaScript。
  防范措施

  对于web站点,将持久化的授权方法(例如cookie或者HTTP授权)切换为瞬时的授权方法(在每个form中提供隐藏field),这将帮助网站防止这些攻击。一种类似的方式是在form中包含秘密信息、用户指定的代号作为cookie之外的验证。

  另一个可选的方法是“双提交”cookie。此方法只工作于Ajax请求,但它能够作为无需改变大量form的全局修正方法。如果某个授权的 cookie在form post之前正被JavaScript代码读取,那么限制跨域规则将被应用。如果服务器需要在Post请求体或者URL中包含授权cookie的请求,那么这个请求必须来自于受信任的域,因为其它域是不能从信任域读取cookie的。

  与通常的信任想法相反,使用Post代替Get方法并不能提供卓有成效的保护。因为JavaScript能使用伪造的POST请求。尽管如此,那些导致对安全产生“副作用”的请求应该总使用Post方式发送。Post方式不会在web服务器和代理服务器日志中留下数据尾巴,然而Get方式却会留下数据尾巴。

  尽管CSRF是web应用的基本问题,而不是用户的问题,但用户能够在缺乏安全设计的网站上保护他们的帐户:通过在浏览其它站点前登出站点或者在浏览器会话结束后清理浏览器的cookie。

  影响CSRF的因素

  CSRF攻击依赖下面的假定:

攻击者了解受害者所在的站点
攻击者的目标站点具有持久化授权cookie或者受害者具有当前会话cookie
目标站点没有对用户在网站行为的第二授权

TechTarget中国原创内容,原文链接:http://www.searchsecurity.com.cn/showcontent_3369.htm

转载于:https://www.cnblogs.com/nanxiaoxiang/archive/2012/10/24/2736572.html

Cross-site request forgery简介相关推荐

  1. DVWA Cross Site Request Forgery (CSRF) -------WP

    CSRF: 介绍 CSRF跨站点请求伪造(Cross-Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解: 攻击者盗用了你的身份,以你的名义发送恶意请求, ...

  2. security框架工作笔记002---CSRF跨站点请求伪造(Cross—Site Request Forgery)_理解和防御

    JAVA技术交流QQ群:170933152  CSRF概念:CSRF跨站点请求伪造(Cross-Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:   ...

  3. DVWA关卡3:Cross Site Request Forgery (CSRF)(跨站请求伪造)

    目录 Low Medium High Impossible Cross Site Request Forgery (CSRF),跨站点请求伪造,它会让用户在当前经过身份验证的Web应用程序上执行攻击者 ...

  4. Web渗透-CSRF跨站点请求伪造(Cross—Site Request Forgery)

    CSRF/XSRF 跨站点请求伪造 `也被称为"One Click Attack"或者Session Riding` 一种对网站的恶意利用漏洞 但你不能保证以下情况不会发生: CS ...

  5. DVWA 之 Cross Site Request Forgery (CSRF)

    汇总链接: https://baynk.blog.csdn.net/article/details/100006641 ---------------------------------------- ...

  6. 403-In general, this can occur when there is a genuine Cross Site Request Forgery, or whe

    解决办法: 在django1.4里,就必须按照提示的步骤来: 1,在view里面,强制使用RequestContext 代替Context.示例如下: from django.template imp ...

  7. 网络安全知识之Cross-Site Request Forgery (CSRF) 简介

    1 CSRF简介 CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,该攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在 ...

  8. CSRF(Cross-site request forgery)跨站请求伪造

    为什么80%的码农都做不了架构师?>>>    CSRF 背景与介绍 CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2 ...

  9. XSS(Cross Site Scripting)攻击简介

    环境 Ubuntu 22.04 IntelliJ IDEA 2022.1.3 JDK 17.0.3.1 Spring Boot 3.0.1 Firefox 108.0.2 问题和分析 在Intelli ...

最新文章

  1. saas模式与国家的产业政策
  2. 乔布斯的斯坦福大学演讲:你必须要找到你所爱的东西
  3. Oracle AWR 介绍
  4. 虚拟机系统与宿主机共享上网设置
  5. MySql详解(六)
  6. 软件工程软件开发成本度量规范_软件开发成本度量方法
  7. 《程序员代码面试指南》第五章 字符串问题 找到字符串的最长无重复字符子串...
  8. java集合学习笔记--二维集合HashMap
  9. ubuntu svn命令
  10. 三维空间点到线段的距离
  11. 寒冬不怕!印度互联网市场潜力巨大
  12. 关于travis scott的网名_情侣网名霸气超拽有范 情侣网名霸气超拽2个字
  13. Java设计模式——Command模式(容易,次要)
  14. Pandas - 5.缺失值处理
  15. 网卡 promiscuous mode 与 MAC 的一些 filter 功能
  16. el表达式ne什么意思_el表达式中的比较eq ne gt lt
  17. SecureCRT安装与配置(重点:心跳配置)
  18. Anaconda使用感悟
  19. 4.EMC整改案案例解析及分析(静电辐射发射)。
  20. 【论文研读】基于BP 神经网络的 Q235 钢力学性能预测模型

热门文章

  1. 成为一名数据分析师的新手指导(转)
  2. 【JY】Abaqus案例—天然橡胶隔震支座竖(轴)向力学性能
  3. 第一、二、三类贝塞尔函数(Python)
  4. 三星等手机拍照选取图片,图片反转的问题
  5. 【Android音视频开发】【014】Surface,SurfaceHolder,SurfaceView之间的关联
  6. 05 ,效果评估 : 估值函数
  7. 丘成桐获得2023年度邵逸夫数学科学奖:十九年后,他“看”到了恩师
  8. 数据类型——数值字符串
  9. 传奇世界彩虹引擎星河引擎微端服务器IP
  10. 开源项目学习方法[转]