[发明专利]一种防御跨站请求伪造CSRF攻击的方法、系统和装置有效
申请号: | 201210061000.3 | 申请日: | 2012-03-09 |
公开(公告)号: | CN103312666A | 公开(公告)日: | 2013-09-18 |
发明(设计)人: | 操龙敏;龙丁奋;郭学亨;朱磊 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 张玉波;宋志强 |
地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 防御 请求 伪造 csrf 攻击 方法 系统 装置 | ||
技术领域
本发明涉及网络技术领域,尤其涉及一种防御跨站请求伪造(CSRF)攻击的方法、系统和装置。
背景技术
跨站请求伪造(CSRF)攻击,是指攻击者利用用户在一网站下的登录态信息,向与该一网站属于相同根域的任意网站发送请求,从而以用户的名义发送邮件、或修改信息、或购买商品等。其中,属于相同根域的不同网站的一级域名相同,但二级域名不同。
现有技术中,如果用户成功登录根域下的一个网站,则认为该用户在该根域下的任一网站都处于登录态,因此如果攻击者冒充该用户向该根域下的网站发送购买商品、修改用户资料等请求,则该根域下的网站将根据该请求进行相应的业务处理。
具体地,由于同一根域下的不同网站的登录信息相同,而登录信息都保存在会话cookie中,因此,攻击者可以通过在http请求中携带用户已经成功登录的网站的cookie值,来冒充该用户,向与该用户已经成功登录的网站的一级域名相同的目标网站发送http请求。
例如,假设用户A登录了自己的个人网络空间,并且,该用户A处于个人网络空间的登录态时,访问了某危险网站A,该危险网站A中有一个<img>图片,该<img>图片的src是修改用户资料的url,即<imgsrc=”qzone.qq.com/cgi-bin/mod?nick=csrf”/>。由于HTML的img标签可以自动执行,以GET的方式发送http请求,因此,当用户A登录该危险网站A时,该危险网站A将以GET的方式向管理用户资料的服务器发送修改该用户A用户资料的Http请求,管理用户资料的服务器收到该危险网站A发送的Http请求后,判断该用户A当前是否处于个人网络空间所属根域的登录态,如果是,则依据该Http请求修改该用户A的用户资料,否则,拒绝修改该用户A的用户资料。
目前,防御CSRF攻击的一种方法是,对重要的写操作,例如修改用户资料等,管理用户资料的服务器只根据以POST请求方式发送的用户资料修改请求进行用户资料的修改。
然而,即便是管理用户资料的服务器只根据以POST请求的方式发送的用户资料修改请求进行用户资料的修改,攻击者仍然可以使用伪造FORM表单请求的方式篡改用户资料。
例如,在危险网站A中嵌入有如下的内嵌框架(iframe):
由于iframe也是可以自动执行的,因此,如果用户A在处于某一网站的登录态时登录所述危险网站A,则一样可以触发CSRF攻击,即该危险网站冒充登录的用户A,向管理用户资料的服务器以POST请求的方式发送用户资料修改请求,从而篡改用户资料。
可见,由于现有技术中,当用户成功登录根域下的一个网站后,该根域下的各个网站均认为该用户处于登录态,如果接收到攻击者冒充用户发送的请求,则会进行相应的处理,因此,难以防御CSRF攻击。
发明内容
有鉴于此,本发明提供了一种防御跨站请求伪造CSRF攻击的方法、系统和装置,从而防御CSRF攻击。
本发明的技术方案具体是这样实现的:
一种防御跨站请求伪造(CSRF)攻击的方法,该方法包括:
网站服务器向登录成功的客户端发送会话cookie,客户端接收所述会话cookie,识别所述网站服务器的完整域名,保存所述会话cookie与所述网站服务器的完整域名之间的对应关系,所述会话cookie包括随机口令(token)值;
客户端在向目标网站服务器提交http请求时,根据请求该客户端发送该http请求的源网站服务器的完整域名,读取与该源网站服务器的完整域名对应的会话cookie,并读取该会话cookie中携带的token值,将该会话cookie携带在Http请求的包头中,将该token值携带在http请求的包体里,向该目标网站服务器提交该http请求;
目标网站服务器接收客户端发来的Http请求,从所述http请求的包头中读取会话cookie,从所述Http请求的包体里读取token值,从所述会话cookie中读取token值,将从所述会话cookie中读取的token值和从所述http请求包体中读取的token值进行比较,如果一致,则根据所述Http请求进行业务处理,如果不一致、或无法从所述cookie中读取token值,则不进行所述业务处理。
一种防御跨站请求伪造(CSRF)攻击的系统,该系统包括客户端和网站服务器;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210061000.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:集群系统
- 下一篇:一种细浸染体铜铅锌硫复杂多金属矿的选矿方法