asp html表单没有csrf保护,ASP.NET MVC 和网页中的 XSRF/CSRF 防护

ASP.NET MVC 和网页中的 XSRF/CSRF 防护

03/14/2013

本文内容

跨站点请求伪造(也称为 XSRF 或 CSRF)是一种针对 Web 托管型应用程序的攻击,恶意网站凭此可以影响客户端浏览器与受该浏览器信任的网站之间的交互。 这些攻击出现的原因可能是 Web 浏览器针对每一个对网站的请求自动发送身份验证令牌。 典型示例是身份验证 cookie,如 ASP.NET 的表单身份验证票证。 然而,使用任何持久身份验证(如 Windows Authentication、Basic 等)的网站也可能成为受攻击目标。

XSRF 攻击不同于网络钓鱼攻击。 网络钓鱼攻击需要与受害者进行交互。 在网络钓鱼攻击中,恶意网站将仿冒目标网站,受到欺骗的受害者会向攻击者提供敏感信息。 在 XSRF 攻击中,通常不必与受害者进行交互。 相反,浏览器自动向目标网站发送所有相关 cookie 为攻击者提供了可乘之机。

攻击剖析

若要演练 XSRF 攻击,请考虑要执行一些在线银行交易的用户。 此用户先访问 WoodgroveBank.com 并登录,此时响应标头将包含她的身份验证 cookie:

HTTP/1.1 200 OK

Date: Mon, 18 Jun 2012 21:22:33 GMT

X-AspNet-Version: 4.0.30319

Set-Cookie: .ASPXAUTH={authentication-token}; path=/; secure; HttpOnly;

{ Cache-Control, Content-Type, Location, Server and other keys/values not listed. }

因为身份验证 cookie 是会话 cookie,浏览器在浏览器进程退出时会自动将其清除。 但在此之前,浏览器将自动在每个请求中包括 cookie 和 WoodgroveBank.com。 用户现在想要将 $1000 传输到另一个帐户,因此她在银行站点上填写表单,浏览器向服务器发出此请求:

POST /DoTransfer HTTP/1.1

Host: WoodgroveBank.com

Content-Type: application/x-www-form-urlencoded

Cookie: .ASPXAUTH={authentication-token}

toAcct=12345&amount=1,000.00

由于此操作在启动货币交易) (有副作用,因此银行站点已选择要求 HTTP POST 以便启动此操作。 服务器从请求中读取身份验证令牌,查找当前用户的帐号,验证是否存在足够的资金,然后启动该事务进入目标帐户。

她的在线银行完成后,用户离开银行网站并访问 web 上的其他位置。 其中一个站点– fabrikam.com –在某个已嵌入到 iframe 中的页面上包含以下标记 < > :

document.getElementById('theForm').submit();

然后,它将导致浏览器发出此请求:

POST /DoTransfer HTTP/1.1

Host: WoodgroveBank.com

Content-Type: application/x-www-form-urlencoded

Cookie: .ASPXAUTH={authentication-token}

toAcct=67890&amount=250.00

攻击者利用这一事实,用户可能仍具有适用于目标网站的有效身份验证令牌,而她使用 Javascript 的小片段来使浏览器自动向目标站点发出 HTTP POST。 如果身份验证令牌仍然有效,银行站点将启动 $250 到攻击者选择的帐户的传输。

低效缓解

请注意,在上面的方案中,WoodgroveBank.com 是通过 SSL 访问的,并

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值