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
跨站脚本攻击,恶意脚本被注入到其他的正常网站中.
跨站点请求伪造
它是一个攻击,让受害者提交恶意的请求.对于大多数网站来说,浏览器自动请求都包含了一些证书,例如用户的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
跨站脚本攻击,恶意脚本被注入到其他的正常网站中.