CSRF攻击

来源:互联网 发布:微信专用淘宝链接 编辑:程序博客网 时间:2024/05/09 15:12
最近需要给自己的应用添加CSRF防御代码,顺便了解一下CSRF攻击。以下是对wiki的摘抄。

   CSRF(Cross-Site Request Forgery)从字面理解就是跨站伪造请求。CSRF攻击会让用户在不知道的情况下在信任站点下执行未知操作。这些未知操作可以是邮件中的一个连接或者其他网站上的一个图片。这种攻击可以盗取用户的信息,如果目标用户是管理员,那么骇客就会进入应用。

   有很多方法可以让目标用户向一个网站提交或者下载一些数据。为了让攻击成功,我们必须要知道怎样产生一个让目标用户区执行的连接。让我们考虑下面的例子Alice要通过网银向Bob转100块钱,Alice提交的post请求如下:

POST http://bank.com/transfer.do HTTP/1.1

然而,Maria发现这个网银可以通过get请求发送相同的请求。

GET http://bank.com/transfer.do?acct=BOB&amount=100 HTTP/1.1

Maria希望利用这个漏洞,从Alice账户中搞点钱。

http://bank.com/transfer.do?acct=MARIA&amount=100000

连接写好了,Maria希望通过邮件发给Alice,并且让Alice无意间触发这个请求。

<a href="http://bank.com/transfer.do?acct=MARIA&amount=100000">View my Pictures!</a>

如果Alice点击这个连接,那边钱就转到Maria手中了,但是一旦点击,页面就会跳转,那边Alice也就发现自己被攻击了。说以要使用0字节图片来隐藏请求。

<img src="http://bank.com/transfer.do?acct=MARIA&amount=100000" width="1" height="1" border="0">

用户打开这个页面,浏览器就会把这个执行这个图片请求连接。被攻击的用户只能发现这个图片没加载出来。不会发现自己被攻击。


原创粉丝点击