文档章节

跨站请求伪造 (CSRF)

VictorLi
 VictorLi
发布于 2013/04/19 17:56
字数 970
阅读 191
收藏 1

    跨站请求伪造 (CSRF)

    CSRF与跨站脚本(XSS)非常相似, 只有一个非常重要的不同之处。XSS利用客户端的弱点,而CSRF利用的是网站服务器的弱点。

    按照OWASP, “一个CSRF袭击迫使某个登录的浏览器向易受攻击的Web应用发送一个请求,然后以受害者的名义,为入侵者的利益进行所选择的行动”(“OWASP Top 10”, 2007 (RC1), 19页)。

    这段描述的关键部分是“强迫已登录的”受害者发送请求。攻击者利用网站对目标用户的信任。这意味着如果攻击取得成功,攻击者就能代表用户执行以下行为:

    ◆购买商品 
    ◆转账 
    ◆运行恶意软件,留下很少或不留下查明真实攻击者的痕迹 
    ◆进行股票交易 
    ◆订阅在线服务

    CSRF并不是一个简单的问题。据ha.ckers.org创立者rsnake称,互联网上有太多CSRF脆弱性需要注意(Kelly Jackson Higgins,“CSRF脆弱性:‘一个沉睡的巨人’”,darkReading,2006年10月17日)。WhiteHat Security的建立者Jeremiah Grossman也赞同这个观点,他指出:“由于工作机制与Web相似,[CRSF]并不被看作是一个脆弱性”(同上)。

    那么其工作原理是什么呢?HTML镜像标签和JavaScript镜像对象是CSRF最常用的两个路径。图C中列出了CSRF攻击常用的HTML和JavaScript方法(Robert Auger,“跨站请求伪造(CSRF/XSRF)常见问题解答”,cgisecurity.net,2007年1月28日)。

    OWASP要素增强Web应用程序安全(6)

    图C CSR攻击

    对用户的攻击有多种方法,包括e-mail和诱使用户点击入侵者网站上的某个链接。一旦发动攻击, 它依靠目标网站上的一个现有可信会话或受害者PC上的一个自动登录cookie来执行。如果存在一个可信会话,攻击命令就在受害者的安全环境中,在网站服务器上运行。

    预防CSRF攻击相当困难,但并非无法预防。用户能够采用的最佳防御手段是采取适当的步骤,保证可信会话不会被攻击者所利用。

    ◆完成任务后退出可信会话。 
    ◆让网站记住你的登录用户名和密码时要小心。留在客户端的登录信息可能会攻击者加以利用。 
    ◆在完成可信会话后删除所有cookie。

    在努力编写不易受到CSRF攻击的应用程序时,网站开发者面临更大的挑战。下面是一些应该考虑的应对措施:

    ◆设定短暂的可信用户会话时间。 
    ◆每次提出一个可信行为时,对发出请求的用户进行验证。 
    ◆在URL和表单中增加的每个请求nonce提供基本会话令牌以外的每个请求用户验证。 
    ◆从应用程序中删除所有XSS脆弱性。攻击者通过XSS可获得有用的攻击信息。例如,攻击者可以伪造一个提示用户输入身份信息的表单。

    结论

    不安全的直接对象引用所造成的漏洞很容易预防。基本的文件夹和目录访问控制以及一致的输入确认即使不能抵御全部攻击,也能够阻止大多数这类攻击。

    CSRF是一种更难防御的脆弱性。提高用户的危险意识以及说明如何保护自己免受攻击是一个好的开始。开发者必须了解如何建立一个可信会话,以及在提出可信行为时如何重新验证用户身份。只有全面了解Web应用程序的设计过程才能开发出不会受到CRSF攻击的网站。

本文转载自:http://www.cnblogs.com/HappyQQ/archive/2008/03/29/1128487.html

VictorLi
粉丝 21
博文 44
码字总数 15588
作品 0
苏州
技术主管
私信 提问
加载中

评论(0)

.NET Core实战项目之CMS 第十四章 开发篇-防止跨站请求伪造(XSRF/CSRF)攻击处理

通过 ASP.NET Core,开发者可轻松配置和管理其应用的安全性。 ASP.NET Core 中包含管理身份验证、授权、数据保护、SSL 强制、应用机密、请求防伪保护及 CORS 管理等等安全方面的处理。 通过这...

依乐祝
2019/01/06
0
0
Django之CSRF

一、什么是CSRF CSRF, Cross Site Request Forgery, 跨站伪造请求。举例来讲,某个恶意的网站上有一个指向你的网站的链接,如果某个用户已经登录到你的网站上了,那么当这个用户点击这个恶意...

daibaiyang119
2017/11/25
0
0
CSRF/XSRF 跨站请求伪造

CSRF(Cross Site Request Forgery, 跨站域请求伪造)也称 XSRF, 是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一。其他安全隐患,比如 SQL 脚本注入,跨站域脚本攻击...

给你添麻烦了
2018/01/13
0
0
csrf攻击防御

起初我一直弄不清楚 CSRF 究竟和 XSS 有什么区别,后来才明白 CSRF 和 XSS 根本是两个不同维度上的分类。XSS 是实现 CSRF 的诸多途径中的一条,但绝对不是唯一的一条。一般习惯上把通过 XSS ...

snowing1990
2016/03/14
114
0
10大最重要的Web安全风险之五:A5-伪造跨站请求

10大最重要的Web安全风险之五:A5-伪造跨站请求(CSRF) OWASP TOP10 A1-注入 A2-跨站脚本(XSS) A3-错误的认证和会话管理 A4-不正确的直接对象引用 A5-伪造跨站请求(CSRF) -- Cross-Sit...

六六木木
2013/07/03
1.3K
3

没有更多内容

加载失败,请刷新页面

加载更多

类和对象

创建对象的几种方式: 1:new创建对象。会增加对象之间的耦合度。不推荐使用。 2:使用反射机制创建对象。Class类的newInstance方法,或者使用Constructor类的newInstance方法。 3:使用对象...

学啥子算法
5分钟前
33
0
你真的会创建一个线程吗?

在文章开始之前先看一个问题,下图几种创建线程方式分别是什么,它们之间的区别和联系是什么? 如果可以轻松回答,那么本文对你来说过于基础,不用往下看啦,如果还有所迷惑,那就和Nauyus一...

JAVA一方
9分钟前
28
0
【已解决】SQL SERVER2008 连接不了本地数据引擎

问题:【已解决】SQL SERVER2008 连接不了本地数据引擎 不知道你有没有遇到过这种情况,当装完 sql server2008之后,然后用 *SQL Server身份验证* 或者 *window身份验证* 访问本地数据库的时...

wanguanrong
10分钟前
30
0
StringTokenizer类

StringTokenizer类:根据自定义字符为分界符进行拆分,并将结果进行封装提供对应方法进行遍历取值,StringTokenizer方法不区分标识符、数和带引号的字符串,它也不识别并跳过注释;该方法用途...

lianbang_W
10分钟前
7
0
自媒体爆文抓取工具有哪些?分享3款爆文工具!

做自媒体运营每天都要持续的创作内容进行输出,这是非常头疼的,不是每一天都会有灵感,有时候就算看再多的素材也没法激发灵感。这时候就需要借助一些同领域做得比较的内容做参考。那么快速地...

易撰自媒体工具
21分钟前
53
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部