用于防止跨站点请求伪造的方法、相关装置及系统的制作方法

文档序号:7997871阅读:134来源:国知局
用于防止跨站点请求伪造的方法、相关装置及系统的制作方法
【专利摘要】本发明实施例公开了一种用于防止跨站点请求伪造的方法、终端、服务器以及系统,其中方法包括:客户端在接收到浏览器的页面消息时,获取发起该页面消息的目标网页页面的cookie信息;客户端若接收到设置在目标网页页面上的转换脚本生成的第一转换标识,则生成包括第一转换标识和cookie信息的页面请求消息;客户端将页面请求消息发送给服务器,使服务器根据cookie信息包括的用户标识和第一转换标识对页面请求消息进行鉴权;其中,第一转换标识是转换脚本根据转换算法对从目标网页页面的cookie信息提取的用户标识进行转换后得到的。采用本发明,能够有效地防止CSRF,较好地保证了用户的上网安全。
【专利说明】用于防止跨站点请求伪造的方法、相关装置及系统

【技术领域】
[0001]本发明涉及一种计算机【技术领域】,尤其涉及一种用于防止跨站点请求伪造的方法、相关装置及系统。

【背景技术】
[0002]CSRF (Cross-site request forgery,跨站点请求伪造)是指第三方网站欺骗用户的浏览器,根据浏览器中用户的cookie信息伪造HTTP请求发送给某一目标站点,从而达到利用用户的cookie信息中的标识、登录信息等对目标站点的服务器进行诸如用户名修改等操作,使得在用户不知情的情况下对该用户的某些信息进行修改。
[0003]目前防止CSRF的现有技术采用的方案为:服务器预先通过种cookie的方式,为客户端中浏览器打开的某一网页页面种上一个标识(称为basekey),浏览器的该网页页面在请求相应服务时,浏览器都要从cookie里边取出该标识放在请求参数里边发送给服务器。服务器根据请求参数中的basekey,可以知道该请求的合法性。
[0004]现有技术能够较好地解决CSRF的问题,但是,发明人发现,服务器分配的cookie信息植入的标识basekey是服务器通过一定转换算法直接生成的,恶意程序或者脚本等还是有可能根据服务器相同的算法计算得到一个标识与本网页标识basekey相同,这就使得CSRF的防止功能无效,给用户带来损失。


【发明内容】

[0005]本发明实施例所要解决的技术问题在于,提供一种用于防止跨站点请求伪造的方法、相关装置及系统,可以较为有效地防止CSRF。
[0006]为了解决上述技术问题,本发明实施例提供了一种用于防止跨站点请求伪造的方法,包括:
[0007]客户端在接收到浏览器的页面消息时,获取发起该页面消息的目标网页页面的cookie 信息;
[0008]客户端若接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识,则生成包括所述第一转换标识和所述cookie信息的页面请求消息;
[0009]客户端将所述页面请求消息发送给服务器,使所述服务器根据所述cookie信息包括的用户标识和所述第一转换标识对所述页面请求消息进行鉴权;
[0010]其中,所述第一转换标识是所述转换脚本根据预置的转换算法对从目标网页页面的cookie信息提取的用户标识进行转换后得到的。
[0011]其中,还包括:客户端若没有接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识,则生成包括所述cookie信息的页面请求消息发送给服务器。
[0012]其中,所述服务器根据所述cookie信息包括的用户标识和所述第一转换标识对所述页面请求消息进行鉴权包括:
[0013]所述服务器在所述页面请求消息中包括cookie信息和第一转换标识时,采用与所述目标网页页面上的转换脚本协商的转换算法对从所述cookie信息提取的用户标识进行转换得到第二转换标识,将第二转换标识与所述第一转换标识进行比较,若两者匹配,则鉴权通过;
[0014]所述服务器在所述页面请求消息中包括cookie信息或者所述第二转换标识与所述第一转换标识不匹配时,则鉴权失败。
[0015]其中,所述客户端在接收到浏览器的页面消息时,获取发起该页面消息的目标网页页面的cookie信息之前,还包括:
[0016]客户端向所述服务器发送连接请求;
[0017]客户端接收所述服务器根据所述连接请求返回的包括用户标识的cookie信息。
[0018]相应地,本发明实施例还提供了另一种用于防止跨站点请求伪造的方法,包括:
[0019]服务器在接收到客户端的关于目标网页页面的页面请求消息时,若所述页面请求消息中包括第一转换标识和所述目标网页页面的cookie信息,从所述cookie信息提取用户标识;
[0020]采用与客户端中设置在所述目标网页页面上的转换脚本协商的转换算法对所述用户标识进行转换,得到第二转换标识;
[0021]若所述第二转换标识与所述第一转换标识匹配,则鉴权成功,响应所述页面请求消息;
[0022]其中,所述第一转换标识是所述转换脚本根据预置的转换算法对从目标网页页面的cookie信息提取的用户标识进行转换后得到的。
[0023]其中,还包括:若所述页面请求消息中包括cookie信息或者所述第二转换标识与所述第一转换标识不匹配时,则确定鉴权失败。
[0024]其中,所述服务器在接收到客户端的关于目标网页页面的页面请求消息时,若所述页面请求消息中包括第一转换标识和所述目标网页页面的cookie信息,从所述cookie信息提取用户标识之前,还包括:
[0025]服务器接收所述客户端发送的关于所述目标网页页面的连接请求;
[0026]服务器在对所述连接请求鉴权通过后,响应所述连接请求向所述客户端返回包括用户标识的cookie信息。
[0027]相应地,本发明实施例还提供了再一种用于防止跨站点请求伪造的方法,包括:
[0028]客户端在接收到浏览器的页面消息时,获取发起该页面消息的目标网页页面的cookie 信息;
[0029]客户端若接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识,则生成包括所述第一转换标识和所述cookie信息的页面请求消息;所述第一转换标识是所述转换脚本根据预置的转换算法对从目标网页页面的cookie信息提取的用户标识进行转换后得到的;
[0030]客户端将所述页面请求消息发送给服务器;
[0031]服务器接收到页面请求消息后,从所述页面请求消息的cookie信息中提取用户标识;
[0032]服务器采用与所述目标网页页面上的转换脚本协商的转换算法对获取的用户标识进行转换得到第二转换标识;
[0033]服务器在判定所述第二转换标识与所述页面请求消息中的第一转换标识相匹配时,响应所述页面请求消息。
[0034]相应地,本发明实施例还提供了一种用于防止跨站点请求伪造的客户端,包括:
[0035]获取模块,用于在接收到浏览器的页面消息时,获取发起该页面消息的目标网页页面的cookie信息;
[0036]生成模块,用于若接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识,则生成包括所述第一转换标识和所述cookie信息的页面请求消息;
[0037]发送模块,用于将所述页面请求消息发送给服务器,使所述服务器根据所述cookie信息包括的用户标识和第一转换标识对所述页面请求消息进行鉴权;
[0038]其中,所述第一转换标识是所述转换脚本根据预置的转换算法对从目标网页页面的cookie信息提取的用户标识进行转换后得到的。
[0039]其中,还包括:所述生成模块,还用于若没有接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识,则生成包括所述cookie信息的页面请求消息发送给服务器。
[0040]其中,所述发送模块还用于向所述服务器发送连接请求;
[0041]所述客户端还包括:接收模块,用于接收所述服务器根据所述连接请求返回的包括用户标识的cookie信息。
[0042]相应地,本发明实施例还提供了一种用于防止跨站点请求伪造的服务器,包括:
[0043]提取模块,用于在接收到客户端的关于目标网页页面的页面请求消息时,若所述页面请求消息中包括第一转换标识和所述目标网页页面的cookie信息,从所述cookie信息提取用户标识;
[0044]转换模块,用于采用与客户端中设置在所述目标网页页面上的转换脚本协商的转换算法对所述用户标识进行转换,得到第二转换标识;
[0045]响应模块,用于若所述第二转换标识与所述第一转换标识匹配,则鉴权成功,响应所述页面请求消息;
[0046]其中,所述第一转换标识是所述转换脚本根据预置的转换算法对从目标网页页面的cookie信息提取的用户标识进行转换后得到的。
[0047]其中,还包括:
[0048]接收模块,用于接收所述客户端发送的关于所述目标网页页面的连接请求;
[0049]处理模块,用于在对所述连接请求鉴权通过后,响应所述连接请求向所述客户端返回包括用户标识的cookie信息。
[0050]相应地,本发明实施例还提供了一种用于防止跨站点请求伪造的系统,包括:客户端和服务器,其中,
[0051]所述客户端,用于在接收到浏览器的页面消息时,获取发起该页面消息的目标网页页面的cookie信息;若接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识,则生成包括所述第一转换标识和所述cookie信息的页面请求消息;所述第一转换标识是所述转换脚本根据预置的转换算法对从目标网页页面的cookie信息提取的用户标识进行转换后得到的;将所述页面请求消息发送给所述服务器;
[0052]所述服务器,用于接收到页面请求消息后,从所述页面请求消息的cookie信息中提取用户标识;采用与所述目标网页页面上的转换脚本协商的转换算法对获取的用户标识进行转换得到第二转换标识;在判定所述第二转换标识与所述页面请求消息中的第一转换标识相匹配时,响应所述页面请求消息。
[0053]本发明实施例中,用户通过客户端需要发起关于某个网页页面的页面请求时,客户端通过浏览器不仅需要发送该网页页面的cookie消息,而且还需要采用转换算法对cookie消息中的用户标识进行转换得到转换标识,服务器则根据转换标识和cookie中的用户标识来对该页面请求进行鉴权,由于转换标识是客户端根据转换算法和用户标识结合计算得到,这样恶意程序或者链接仅凭转换算法是不能够得到转换标识,因此,能够有效地防止CSRF,较好地保证了用户的上网安全,满足安全需求。

【专利附图】

【附图说明】
[0054]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0055]图1是本发明实施例一种用于防止跨站点请求伪造的方法的流程示意图;
[0056]图2是本发明实施例另一种用于防止跨站点请求伪造的方法的流程示意图;
[0057]图3是本发明实施例再一种用于防止跨站点请求伪造的方法的流程示意图;
[0058]图4是本发明实施例又一种用于防止跨站点请求伪造的方法的流程示意图;
[0059]图5是本发明实施例一种用于防止跨站点请求伪造的终端的结构示意图;
[0060]图6是本发明实施例另一种用于防止跨站点请求伪造的服务器的结构示意图。
[0061]

【具体实施方式】
[0062]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0063]请参见图1,是本发明实施例的一种用于防止跨站点请求伪造的方法的流程示意图,本发明实施例的所述方法可应用于当前使用的各类网页应用中,通过客户端与服务器结合实现防止CSRF的功能。具体的,本发明实施例的所述方法包括:
[0064]SlOl:客户端在接收到浏览器的页面消息时,获取发起该页面消息的目标网页页面的cookie信息。
[0065]S102:客户端若接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识,则生成包括所述第一转换标识和所述cookie信息的页面请求消息。所述第一转换标识是所述转换脚本根据预置的转换算法对从目标网页页面的cookie信息提取的用户标识进行转换后得到的。
[0066]所述转换脚本可以是由发布所述目标网页页面的服务商在生成所述目标网页页面时,加载到所述目标网页页面上的。当然也可以是客户端在请求所述目标网页页面时,由服务器自动加载到所述目标网页页面上的。
[0067]所述SlOl中的页面消息可以是用户通过点击设置在目标网页页面上的诸如修改链接等的按钮时,由该目标网页页面发出的。
[0068]在所述S102中,若页面消息是用户通过点击设置在目标网页页面上的诸如修改链接等的按钮时,由该目标网页页面发出,则设置在所述目标网页页面上的转换脚本会在检测到该点击操作时,从目标网页页面的cookie信息提取用户标识,并按照预置的转换算法对提取的用户标识进行转换,生成第一转换标识。
[0069]所述cookie信息中的用户标识可以是用户名和/或登录关键字key,即用户在该目标网页页面登录某类应用的用户名和/或登录关键字key信息。
[0070]所述转换算法可以包括哈希HASH算法,具体可以采取DJB HASH算法对提取到的用户标识进行哈希转换,得到新的如字符标识信息等第一转换标识。并生成包括该第一转换标识和所述目标网页页面的cookie信息的HTTP请求及页面请求消息。
[0071]进一步的,在CSRF发生时,所述SlOl中的页面消息也可以是用户在打开其他网页页面时,由其他网页上自动运行的恶意链接或恶意程序触发所述目标网页页面发出的。
[0072]而若页面消息是用户在打开其他网页页面时,由其他网页上自动运行的恶意链接或恶意程序触发所述目标网页页面发出的,那么,由现有技术的同源策略可知,其他网页上自动运行的恶意链接或恶意程序由于其对应的域名、协议、端口等与所述目标网页页面的并不相同,因此,其他网页上自动运行的恶意链接或恶意程序并不能够触发所述目标网页页面上的转换脚本工作,也不能够获取到所述目标网页页面的cookie信息中的用户标识以进行转换,因此,客户端不会接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识。此时,客户端根据页面消息,仅能生成包括所述目标网页页面的cookie信息的页面请求消息。
[0073]S103:客户端将所述页面请求消息发送给服务器。
[0074]发送的页面请求消息为包括第一转换标识和所述目标网页页面的cookie信息的页面请求消息;或者为包括cookie信息的页面请求消息。
[0075]S104:服务器接收到页面请求消息后,从所述页面请求消息的cookie信息中提取用户标识。
[0076]S105:服务器采用与所述目标网页页面上的转换脚本协商的转换算法对获取的用户标识进行转换得到第二转换标识。
[0077]S106:服务器在判定所述第二转换标识与所述页面请求消息中的第一转换标识相匹配时,响应所述页面请求消息。
[0078]服务器在接收到页面请求消息后,按照现有的识别方式对该页面请求消息(HTTP请求)进行识别,确定发起该页面请求消息的客户端、浏览器以及浏览器上与该页面请求消息的目标网页页面。
[0079]在所述S104中,若所述页面请求消息中包括第一转换标识和cookie信息,则从页面请求消息中的cookie信息中获取用户标识,S105采用与所述转换脚本相同的转换算法对用户标识进行转换,得到第二转换标识。当然也可以采用其他的与客户端协商的转换算法,以便于客户端和服务器端转换得到的转换标识进行核对匹配。
[0080]在所述S106中,得到第二转换标识后,从所述页面请求消息相应字段中提取第一转换标识,将两者进行比较,如果相同,则确定该页面请求消息合法,响应该页面请求消息进行相应的增、删、查、改等操作,而如果不相同,则该页面请求消息为非法操作,拒绝该页面请求消息所请求的操作,必要时还可以向对应用户发出报警,如向预先在所述目标网页页面上设置的报告区发出报警信息。
[0081]当然,服务器也可以先从页面请求消息的相应字段中提取出第一转换标识,然后再执行所述S106得到第二转换标识,最后执行S107。
[0082]若所述页面请求消息中仅包括cookie信息,则可以直接判定该页面请求消息为非法操作,鉴权失败。同样可以向对应用户发出报警,如向预先在所述目标网页页面上设置的报告区发出报警信息。
[0083]本发明实施例中,用户通过客户端需要发起关于某个网页页面的页面请求时,客户端通过浏览器不仅需要发送该网页页面的cookie消息,而且还需要采用转换算法对cookie消息中的用户标识进行转换得到转换标识,服务器则根据转换标识和cookie中的用户标识来对该页面请求进行鉴权,由于转换标识是客户端根据转换算法和用户标识结合计算得到,这样恶意程序或者链接仅凭转换算法是不能够得到转换标识,因此,能够有效地防止CSRF,较好地保证了用户的上网安全,满足安全需求。
[0084]再请参见图2,是本发明实施例的另一种用于防止跨站点请求伪造的方法的流程示意图,本发明实施例的所述方法可应用与当前使用的各类网页应用中,通过客户端与服务器结合完成CSRF的防止功能。具体的,本发明实施例的所述方法应用在可以安装浏览器浏览不同网页页面的智能手机、个人电脑等客户端中,所述方法包括:
[0085]S201:客户端在接收到浏览器的页面消息时,获取发起该页面消息的目标网页页面的cookie信息。
[0086]所述S201中的页面消息可以是用户通过点击设置在目标网页页面上的诸如修改链接等的按钮时,由该目标网页页面发出的。或者,在CSRF发生时,所述S201中的页面消息也可以是用户在打开其他网页页面时,由其他网页上自动运行的恶意链接或恶意程序触发所述目标网页页面发出的。
[0087]本发明实施例中在所述S201之前,还可以包括:客户端向所述服务器发送连接请求;客户端接收所述服务器根据所述连接请求返回的包括用户标识的cookie信息。
[0088]客户端可以在浏览器中打开一个或者多个网页页面,其可以在其中一个网页页面中提交相应的连接请求,例如在社交论坛页面中提交了客户端用户的用户名和/或登录关键字key等信息。浏览器根据用户输入的用户标识向对应服务器(如社交论坛服务器)发送携带用户标识的连接请求(HTTP请求),以便于服务器对连接请求进行鉴权,判断该用户是否为会员用户等合法用户,若是,则分配cookie。
[0089]S202:客户端若接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识,则生成包括所述第一转换标识和所述cookie信息的页面请求消息。其中,所述第一转换标识是所述转换脚本根据预置的转换算法对从目标网页页面的cookie信息提取的用户标识进行转换后得到的。转到S204。
[0090]S203:客户端若没有接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识,则生成包括所述cookie信息的页面请求消息发送给服务器。
[0091]若页面消息可以是用户通过点击设置在目标网页页面上的诸如修改链接等的按钮时,由该目标网页页面发出的,则执行所述S202。即:设置在所述目标网页页面上的转换脚本检测到用户通过点击设置在目标网页页面上的诸如修改链接等的按钮时,从目标网页页面的cookie信息提取用户标识,并按照预置的转换算法对提取的用户标识进行转换,生成第一转换标识。
[0092]而若页面消息是用户在打开其他网页页面时,由其他网页上自动运行的恶意链接或恶意程序触发所述目标网页页面发出的,则执行所述S203。即:由现有技术的同源策略可知,其他网页上自动运行的恶意链接或恶意程序由于其对应的域名、协议、端口等与所述目标网页页面的并不相同,因此,其他网页上自动运行的恶意链接或恶意程序并不能够触发所述目标网页页面上的转换脚本工作,也不能够获取到所述目标网页页面的cookie信息中的用户标识以进行转换,因此,客户端不会接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识。此时,客户端根据页面消息,仅能生成包括所述目标网页页面的cookie信息的页面请求消息。
[0093]执行所述S202或S203之前的检测是否接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识的步骤中,具体可以包括:客户端在预设的时间范围阈值内是否接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识,在预设时间范围阈值内接收到,则执行所述S202,在预设时间范围阈值内没有接收到,则执行所述S203。
[0094]S204:客户端将所述页面请求消息发送给服务器,使所述服务器根据所述cookie信息包括的用户标识和所述第一转换标识对所述页面请求消息进行鉴权。
[0095]所述服务器根据所述cookie信息包括的用户标识和所述第一转换标识对所述页面请求消息进行鉴权包括:
[0096]所述服务器在所述页面请求消息中包括cookie信息和第一转换标识时,采用与所述目标网页页面上的转换脚本协商的转换算法对从所述cookie信息提取的用户标识进行转换得到第二转换标识,将第二转换标识与所述第一转换标识进行比较,若两者匹配,则鉴权通过;
[0097]所述服务器在所述页面请求消息中包括cookie信息或者所述第二转换标识与所述第一转换标识不匹配时,则鉴权失败。
[0098]本发明实施例中,用户通过客户端需要发起关于某个网页页面的页面请求时,客户端通过浏览器不仅需要发送该网页页面的cookie消息,而且还需要采用转换算法对cookie消息中的用户标识进行转换得到转换标识,服务器则根据转换标识和cookie中的用户标识来对该页面请求进行鉴权,由于转换标识是客户端根据转换算法和用户标识结合计算得到,这样恶意程序或者链接仅凭转换算法是不能够得到转换标识,因此,能够有效地防止CSRF,较好地保证了用户的上网安全,满足安全需求。
[0099]再请参见图3,是本发明实施例的再一种用于防止跨站点请求伪造的方法的流程示意图,本发明实施例的所述方法可应用与当前使用的各类网页应用中,通过客户端与服务器结合完成CSRF的防止功能。具体的,本实施例的所述方法应用在各种社交论坛、网页版即时通讯应用等应用服务器中,具体的,所述方法包括:
[0100]S301:服务器在接收到客户端的关于目标网页页面的页面请求消息时,若所述页面请求消息中包括第一转换标识和所述目标网页页面的cookie信息,从所述cookie信息提取用户标识。
[0101]其中,所述第一转换标识是所述转换脚本根据预置的转换算法对从目标网页页面的cookie信息提取的用户标识进行转换后得到的。
[0102]如上所述,所述客户端中设置在目标网页页面上的转换脚本具体可以是根据预置的转换算法对从所述目标网页页面的cookie信息中提取的用户标识进行转换,得到第一转换标识。所述转换算法可以包括哈希HASH算法,具体可以采取DJB HASH算法对提取到的用户标识进行哈希转换,得到新的如字符标识信息等第一转换标识。
[0103]客户端再生成包括第一转换标识和所述目标网页页面的cookie信息的页面请求消息,并发送给服务器。
[0104]同样,由于其他网页页面上的恶意链接或者恶意程序触发了本次的页面请求消息,那么,所述客户端中设置在目标网页页面上的转换脚本并不会得到第一转换标识。且其他网页页面上的恶意链接或者恶意程序也不能够生成第一转换标识提供给客户端,此时,客户端发送的页面请求消息中并不会包括第一转换标识,而和现有技术相同,仅有所述目标网页页面的cookie信息,此时所述服务器会直接执行下述的S304。
[0105]进一步的,在所述S301之前,还包括:服务器接收所述客户端发送的关于所述目标网页页面的连接请求;服务器在对所述连接请求鉴权通过后,响应所述连接请求向所述客户端返回包括用户标识的cookie信息。
[0106]S302:采用与客户端中设置在所述目标网页页面上的转换脚本协商的转换算法对所述用户标识进行转换,得到第二转换标识。
[0107]服务器在接收到页面请求消息后,按照现有的识别方式对该页面请求消息(HTTP请求)进行识别,确定发起该页面请求消息的客户端、浏览器以及浏览器上与该页面请求消息的目标网页页面。
[0108]所述S302采用与所述转换脚本相同的转换算法对用户标识进行转换,得到第二转换标识。当然也可以采用其他的与客户端协商的转换算法,以便于客户端和服务器端转换得到的转换标识进行核对匹配。
[0109]得到第二转换标识后,从所述页面请求消息相应字段中提取第一转换标识,将两者进行比较,如果相同,则确定该页面请求消息合法,执行下述的S303,响应该页面请求消息进行相应的增、删、查、改等操作。而如果不相同,则该页面请求消息为非法操作,执行下述S304,拒绝该页面请求消息所请求的操作,必要时还可以向对应用户发出报警,如向预先在所述目标网页页面上设置的报告区发出报警信息。
[0110]S303:若所述第二转换标识与所述第一转换标识匹配,则鉴权成功,响应所述页面请求消息。
[0111]当然,服务器也可以先从页面请求消息的相应字段中提取出第一转换标识,然后再执行所述S302得到第二转换标识,最后执行S303或S304。
[0112]S304:若所述页面请求消息中仅包括cookie信息或者所述第二转换标识与所述第一转换标识不匹配时,则确定鉴权失败。
[0113]若所述页面请求消息中仅包括cookie信息,则可以直接判定该页面请求消息为非法操作,鉴权失败。同样可以向对应用户发出报警,如向预先在所述目标网页页面上设置的报告区发出报警信息。
[0114]本发明实施例中,用户通过客户端需要发起关于某个网页页面的页面请求时,客户端通过浏览器不仅需要发送该网页页面的cookie消息,而且还需要采用转换算法对cookie消息中的用户标识进行转换得到转换标识,服务器则根据转换标识和cookie中的用户标识来对该页面请求进行鉴权,由于转换标识是客户端根据转换算法和用户标识结合计算得到,这样恶意程序或者链接仅凭转换算法是不能够得到转换标识,因此,能够有效地防止CSRF,较好地保证了用户的上网安全,满足安全需求。
[0115]下面对本发明实施例的防止跨站点请求伪造的终端及系统进行详细描述。
[0116]请参见图4,是本发明实施例的防止跨站点请求伪造的系统的结构组成示意图,本发明实施例的所述系统可应用于当前使用的各类网页应用中,通过客户端与服务器结合实现防止CSRF的功能。具体的,所述系统包括:客户端I和服务器2。
[0117]所述客户端I可以为能够安装浏览器浏览不同网页页面的智能手机、个人电脑等的设备。所述服务器2则可以为各种社交论坛、网页版即时通讯应用等应用服务器。
[0118]所述客户端1,用于在接收到浏览器的页面消息时,获取发起该页面消息的目标网页页面的cookie信息;若接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识,则生成包括所述第一转换标识和所述cookie信息的页面请求消息;所述第一转换标识是所述转换脚本根据预置的转换算法对从目标网页页面的cookie信息提取的用户标识进行转换后得到的;将所述页面请求消息发送给所述服务器2 ;
[0119]所述服务器2,用于接收到页面请求消息后,从所述页面请求消息的cookie信息中提取用户标识;采用与所述目标网页页面上的转换脚本协商的转换算法对获取的用户标识进行转换得到第二转换标识;在判定所述第二转换标识与所述页面请求消息中的第一转换标识相匹配时,响应所述页面请求消息。
[0120]具体的,请参见图5,是本发明实施例的一种用于防止跨站点请求伪造的客户端的结构组成示意图,本实施例的所述客户端I包括:
[0121]获取模块11,用于在接收到浏览器的页面消息时,获取发起该页面消息的目标网页页面的cookie信息;
[0122]生成模块12,用于若接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识,则生成包括所述第一转换标识和所述cookie信息的页面请求消息;
[0123]发送模块13,用于将所述页面请求消息发送给服务器,使所述服务器根据所述cookie信息包括的用户标识和第一转换标识对所述页面请求消息进行鉴权;
[0124]其中,所述第一转换标识是所述转换脚本根据预置的转换算法对从目标网页页面的cookie信息提取的用户标识进行转换后得到的。
[0125]所述转换脚本可以是由发布所述目标网页页面的服务商在生成所述目标网页页面时,加载到所述目标网页页面上的。当然也可以是客户端在请求所述目标网页页面时,由服务器自动加载到所述目标网页页面上的。
[0126]所述页面消息可以是用户通过点击设置在目标网页页面上的诸如修改链接等的按钮时,由该目标网页页面发出的。
[0127]若所述页面消息是用户通过点击设置在目标网页页面上的诸如修改链接等的按钮时,由该目标网页页面发出,则设置在所述目标网页页面上的转换脚本会在检测到该点击操作时,从目标网页页面的cookie信息提取用户标识,并按照预置的转换算法对提取的用户标识进行转换,生成第一转换标识。
[0128]所述cookie信息中的用户标识可以是用户名和/或登录关键字key,即用户在该目标网页页面登录某类应用的用户名和/或登录关键字key信息。
[0129]所述转换算法可以包括哈希HASH算法,具体可以采取DJB HASH算法对提取到的用户标识进行哈希转换,得到新的如字符标识信息等第一转换标识。并生成包括该第一转换标识和所述目标网页页面的cookie信息的HTTP请求及页面请求消息。
[0130]所述生成模块12则对于生成包括所述第一转换标识和所述目标网页页面的cookie信息的页面请求消息。
[0131]进一步可选地,本发明实施例的所述客户端的所述生成模块12,还用于若没有接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识,则生成包括所述cookie信息的页面请求消息发送给服务器。
[0132]进一步的,在CSRF发生时,所述页面消息也可以是用户在打开其他网页页面时,由其他网页上自动运行的恶意链接或恶意程序触发所述目标网页页面发出的。
[0133]而若页面消息是用户在打开其他网页页面时,由其他网页上自动运行的恶意链接或恶意程序触发所述目标网页页面发出的,那么,由现有技术的同源策略可知,其他网页上自动运行的恶意链接或恶意程序由于其对应的域名、协议、端口等与所述目标网页页面的并不相同,因此,其他网页上自动运行的恶意链接或恶意程序并不能够触发所述目标网页页面上的转换脚本工作,也不能够获取到所述目标网页页面的cookie信息中的用户标识以进行转换,因此,客户端不会接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识。此时,所述生成模块12根据页面消息,仅能生成包括所述目标网页页面的cookie信息的页面请求消息。
[0134]在通过上述的获取模块11、生成模块12以及发送模块13执行上述功能之前,所述发送模块13还用于向所述服务器发送连接请求,进一步可选地,如图5所示,本发明实施例的所述终端还可以包括:接收模块14,用于接收所述服务器根据所述连接请求返回的包括用户标识的cookie信息。
[0135]再请参见图6,是本发明实施例的一种用于防止跨站点请求伪造的服务器的结构组成示意图;本实施例的所述服务器2包括:
[0136]提取模块21,用于在接收到客户端的关于目标网页页面的页面请求消息时,若所述页面请求消息中包括第一转换标识和所述目标网页页面的cookie信息,从所述cookie信息提取用户标识;
[0137]转换模块22,用于采用与客户端中设置在所述目标网页页面上的转换脚本协商的转换算法对所述用户标识进行转换,得到第二转换标识;
[0138]响应模块23,用于若所述第二转换标识与所述第一转换标识匹配,则鉴权成功,响应所述页面请求消息;
[0139]其中,所述第一转换标识是所述转换脚本根据预置的转换算法对从目标网页页面的cookie信息提取的用户标识进行转换后得到的。
[0140]服务器在接收到页面请求消息后,按照现有的识别方式对该页面请求消息(HTTP请求)进行识别,确定发起该页面请求消息的客户端、浏览器以及浏览器上与该页面请求消息的目标网页页面。
[0141]响应模块23若所述页面请求消息中包括第一转换标识和cookie信息,所述提取模块21则从页面请求消息中的cookie信息中获取用户标识,所述转换模块22采用与所述转换脚本相同的转换算法对用户标识进行转换,得到第二转换标识。当然也可以采用其他的与客户端协商的转换算法,以便于客户端和服务器端转换得到的转换标识进行核对匹配。
[0142]得到第二转换标识后,所述响应模块23根据从所述页面请求消息相应字段中提取第一转换标识,将两者进行比较,如果相同,则确定该页面请求消息合法,响应该页面请求消息进行相应的增、删、查、改等操作,而如果不相同,则该页面请求消息为非法操作,拒绝该页面请求消息所请求的操作,必要时还可以向对应用户发出报警,如向预先在所述目标网页页面上设置的报告区发出报警信息。
[0143]若所述页面请求消息中仅包括cookie信息,则可以直接判定该页面请求消息为非法操作,鉴权失败。同样可以向对应用户发出报警,如向预先在所述目标网页页面上设置的报告区发出报警信息。
[0144]进一步可选的,如图6所示,本发明实施例的所述服务器还包括:
[0145]接收模块24,用于接收所述客户端发送的关于所述目标网页页面的连接请求;
[0146]处理模块25,用于在对所述连接请求鉴权通过后,响应所述连接请求向所述客户端返回包括用户标识的cookie信息。
[0147]即所述服务器通过所述接收24和处理模块25,与客户端中上述的发送模块13和接收模块15相配合,完成所述目标网页页面的cookie信息的分配。
[0148]本发明实施例中,用户通过客户端需要发起关于某个网页页面的页面请求时,客户端通过浏览器不仅需要发送该网页页面的cookie消息,而且还需要采用转换算法对cookie消息中的用户标识进行转换得到转换标识,服务器则根据转换标识和cookie中的用户标识来对该页面请求进行鉴权,由于转换标识是客户端根据转换算法和用户标识结合计算得到,这样恶意程序或者链接仅凭转换算法是不能够得到转换标识,因此,能够有效地防止CSRF,较好地保证了用户的上网安全,满足安全需求。
[0149]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。
[0150]以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【权利要求】
1.一种用于防止跨站点请求伪造的方法,其特征在于,包括: 客户端在接收到浏览器的页面消息时,获取发起该页面消息的目标网页页面的cookie信息; 客户端若接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识,则生成包括所述第一转换标识和所述cookie信息的页面请求消息; 客户端将所述页面请求消息发送给服务器,使所述服务器根据所述cookie信息包括的用户标识和所述第一转换标识对所述页面请求消息进行鉴权; 其中,所述第一转换标识是所述转换脚本根据预置的转换算法对从目标网页页面的cookie信息提取的用户标识进行转换后得到的。
2.如权利要求1所述的方法,其特征在于,还包括: 客户端若没有接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识,则生成包括所述cookie信息的页面请求消息发送给服务器。
3.如权利要求2所述的方法,其特征在于,所述服务器根据所述cookie信息包括的用户标识和所述第一转换标识对所述页面请求消息进行鉴权包括: 所述服务器在所述页面请求消息中包括cookie信息和第一转换标识时,采用与所述目标网页页面上的转换脚本协商的转换算法对从所述cookie信息提取的用户标识进行转换得到第二转换标识, 将第二转换标识与所述第一转换标识进行比较,若两者匹配,则鉴权通过; 所述服务器在所述页面请求消息中仅包括cookie信息或者所述第二转换标识与所述第一转换标识不匹配时,则鉴权失败。
4.如权利要求1-3任一项所述的方法,其特征在于,所述客户端在接收到浏览器的页面消息时,获取发起该页面消息的目标网页页面的cookie信息之前,还包括: 客户端向所述服务器发送连接请求; 客户端接收所述服务器根据所述连接请求返回的包括用户标识的cookie信息。
5.一种用于防止跨站点请求伪造的方法,其特征在于,包括: 服务器在接收到客户端的关于目标网页页面的页面请求消息时,若所述页面请求消息中包括第一转换标识和所述目标网页页面的cookie信息,从所述cookie信息提取用户标识; 采用与客户端中设置在所述目标网页页面上的转换脚本协商的转换算法对所述用户标识进行转换,得到第二转换标识; 若所述第二转换标识与所述第一转换标识匹配,则鉴权成功,响应所述页面请求消息; 其中,所述第一转换标识是所述转换脚本根据预置的转换算法对从目标网页页面的cookie信息提取的用户标识进行转换后得到的。
6.如权利要求5所述的方法,其特征在于,还包括: 若所述页面请求消息中包括cookie信息或者所述第二转换标识与所述第一转换标识不匹配时,则确定鉴权失败。
7.如权利要求5或6所述的方法,其特征在于,所述服务器在接收到客户端的关于目标网页页面的页面请求消息时,若所述页面请求消息中包括第一转换标识和所述目标网页页面的cookie信息,从所述cookie信息提取用户标识之前,还包括: 服务器接收所述客户端发送的关于所述目标网页页面的连接请求; 服务器在对所述连接请求鉴权通过后,响应所述连接请求向所述客户端返回包括用户标识的cookie信息。
8.一种用于防止跨站点请求伪造的方法,其特征在于,包括: 客户端在接收到浏览器的页面消息时,获取发起该页面消息的目标网页页面的cookie信息; 客户端若接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识,则生成包括所述第一转换标识和所述cookie信息的页面请求消息;所述第一转换标识是所述转换脚本根据预置的转换算法对从目标网页页面的cookie信息提取的用户标识进行转换后得到的; 客户端将所述页面请求消息发送给服务器; 服务器接收到页面请求消息后,从所述页面请求消息的cookie信息中提取用户标识;服务器采用与所述目标网页页面上的转换脚本协商的转换算法对获取的用户标识进行转换得到第二转换标识; 服务器在判定所述第二转换标识与所述页面请求消息中的第一转换标识相匹配时,响应所述页面请求消息。
9.一种用于防止跨站点请求伪造的客户端,其特征在于,包括: 获取模块,用于在接收到浏览器的页面消息时,获取发起该页面消息的目标网页页面的cookie信息; 生成模块,用于若接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识,则生成包括所述第一转换标识和所述cookie信息的页面请求消息; 发送模块,用于将所述页面请求消息发送给服务器,使所述服务器根据所述cookie信息包括的用户标识和第一转换标识对所述页面请求消息进行鉴权; 其中,所述第一转换标识是所述转换脚本根据预置的转换算法对从目标网页页面的cookie信息提取的用户标识进行转换后得到的。
10.如权利要求9所述的客户端,其特征在于,还包括: 所述生成模块,还用于若没有接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识,则生成包括所述cookie信息的页面请求消息发送给服务器。
11.如权利要求9或10所述的客户端,其特征在于, 所述发送模块还用于向所述服务器发送连接请求; 所述客户端还包括: 接收模块,用于接收所述服务器根据所述连接请求返回的包括用户标识的cookie信息。
12.一种用于防止跨站点请求伪造的服务器,其特征在于,包括: 提取模块,用于在接收到客户端的关于目标网页页面的页面请求消息时,若所述页面请求消息中包括第一转换标识和所述目标网页页面的cookie信息,从所述cookie信息提取用户标识; 转换模块,用于采用与客户端中设置在所述目标网页页面上的转换脚本协商的转换算法对所述用户标识进行转换,得到第二转换标识; 响应模块,用于若所述第二转换标识与所述第一转换标识匹配,则鉴权成功,响应所述页面请求消息; 其中,所述第一转换标识是所述转换脚本根据预置的转换算法对从目标网页页面的cookie信息提取的用户标识进行转换后得到的。
13.如权利要求12所述的服务器,其特征在于,还包括: 接收模块,用于接收所述客户端发送的关于所述目标网页页面的连接请求; 处理模块,用于在对所述连接请求鉴权通过后,响应所述连接请求向所述客户端返回包括用户标识的cookie信息。
14.一种用于防止跨站点请求伪造的系统,其特征在于,包括:客户端和服务器,其中, 所述客户端,用于在接收到浏览器的页面消息时,获取发起该页面消息的目标网页页面的cookie信息;若接收到设置在所述目标网页页面上的转换脚本生成的第一转换标识,则生成包括所述第一转换标识和所述cookie信息的页面请求消息;所述第一转换标识是所述转换脚本根据预置的转换算法对从目标网页页面的cookie信息提取的用户标识进行转换后得到的;将所述页面请求消息发送给所述服务器; 所述服务器,用于接收到页面请求消息后,从所述页面请求消息的cookie信息中提取用户标识;采用与所述目标网页页面上的转换脚本协商的转换算法对获取的用户标识进行转换得到第二转换标识;在判定所述第二转换标识与所述页面请求消息中的第一转换标识相匹配时,响应所述页面请求消息。
【文档编号】H04L29/08GK104079611SQ201310108023
【公开日】2014年10月1日 申请日期:2013年3月29日 优先权日:2013年3月29日
【发明者】张扬, 朱磊, 唐巧明, 林晓炜, 吴初潘, 冯子木, 龙丁奋, 郭学亨, 于树南, 吴文斌, 彭冲 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1