csrf学习笔记

cross-site request forgery
跨站点请求伪造
它是一个攻击,让受害者提交恶意的请求.对于大多数网站来说,浏览器自动请求都包含了一些证书,例如用户的session cookie, ip地址,Windows域凭据等,因此,一旦用户目前已经被该站点验证,该站点就没办法区分是受害者发送的违法请求
还是一个合理请求.
csrf攻击目标的功能可以导致服务器端状态的改变,例如修改了受害者的邮箱地址或者密码或者购买了什么东西.强迫受害这去检索数据对攻击者是没有意义的,因为攻击者不能接受到服务器的响应.因此,csrf攻击目标改变状态的请求.
有时候易受攻击的网站本身就存在着csrf攻击.例如漏洞被成为'存储的csrf漏洞'.这个可以通过在区域中存储一个图片一个接收html的iframe标签简单的实现,或者通过更复杂的跨站脚本攻击.如果这个攻击可以保存csrf攻击在这个网站中,那么攻击的严重度将会被放大.特别是,在用户比较喜欢浏览的页面包含攻击而不是网络上的随意页面,就增加了被攻击的可能性.用户已经被网站验证过也会增加被攻击的可能性.


同义词
跨站点伪造攻击的其他名字包括:xsrf,'sea surf', session riding, cross-site reference forgey和hostile linking.微软在他们的各种在线文档中称这种类型的攻击为一次点击攻击.


让跨站点伪造请求不工作的预防措施:
(1)使用一个秘密的cookie
记住所有的cookie即便是一个保密的cookie,都会被每次请求提交.所有的验证tokens将会被提交,无论终端用户是否被欺骗提交请求.此外session标志符被应用容器简单的用于通过一个特别的session对象与请求发生联系.这个session标志符不用于终端用户提交请求的验证.


(2)只接受post请求
应用可以被开发成之接受post请求为业务逻辑的执行.误解是这样的当一个攻击者不能构建一个恶意的链接,一个csrf攻击就不能被执行.不幸的是,这个逻辑是不正确的.攻击者有很多方法玩弄受害者进行一个恶意的post请求提交,例如:一个通过一个隐藏值在攻击者的站点的简单form托管.这个form可以通过js自动出发,或者被受害者触发.


随着时间的发展出现了很多阻止csrf攻击的方法.
(1)multi-step transactions
多不事物不足够预防csrf,只要攻击者可以预测到完成的事务的每一步,然后csrf就有可能实现.
(2)url rewriting
(3)https


Examples
如何进行攻击工作?
get方案的跨站点请求伪造
post方案的跨站点请求伪造


XSS
cross-site scripting
跨站脚本攻击,恶意脚本被注入到其他的正常网站中.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值