CSRF攻击

最近需要给自己的应用添加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">

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值