首页 / 专利库 / 电脑安全 / 跨站请求伪造 / 一种防止跨站请求伪造攻击的方法及系统

一种防止跨站请求伪造攻击的方法及系统

阅读:735发布:2020-05-21

专利汇可以提供一种防止跨站请求伪造攻击的方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 适用于网络安全技术领域,提供了一种防止跨站 请求 伪造攻击的方法及系统,该方法包括:客户端在接收到浏览器的页面消息时,生成HTTP请求;客户端根据从服务端获取的策略文件对HTTP请求中的cookie信息进行过滤处理;客户端将过滤处理后的HTTP请求发送至服务端。在本发明中,由于策略文件由服务端提供,服务端准确定义其希望收到来自哪些页面的请求,客户端根据策略文件对HTTP请求进行真伪判断,确保了不被策略文件允许的请求不会携带用户的cookie,服务端不希望接受的请求不会被客户端发出,保证了客户端的网络安全。,下面是一种防止跨站请求伪造攻击的方法及系统专利的具体信息内容。

1.一种防止跨站请求伪造攻击的方法,其特征在于,所述方法包括:
客户端在接收到浏览器的页面消息时,生成HTTP请求;
所述客户端根据从服务端获取的策略文件对所述HTTP请求中的cookie信息进行过滤处理;
所述客户端将过滤处理后的所述HTTP请求发送至所述服务端。
2.根据权利要求1所述的方法,其特征在于,所述客户端根据从服务端获取的策略文件对所述HTTP请求中的cookie信息进行过滤处理的步骤包括:
所述客户端在本地文件系统中查找所述HTTP请求的关联策略文件;
未查找到所述关联策略文件或者所述本地文件系统中的所述关联策略文件的时间戳比所述服务端中的所述关联策略文件的最新时间戳小,所述客户端从所述服务端更新所述策略文件。
3.根据权利要求2所述的方法,其特征在于,所述客户端在本地文件系统中查找所述HTTP请求的关联策略文件的步骤之后包括:
所述客户端从所述服务端获取所述关联策略文件的最新时间戳;
所述客户端中将本地文件系统中的所述关联策略文件的时间戳与从所述服务端获取的所述关联策略文件的最新时间戳进行对比。
4.根据权利要求1所述的方法,其特征在于,所述客户端根据从服务端获取的策略文件对所述HTTP请求中的cookie信息进行过滤处理的步骤还包括:
所述客户端根据所述HTTP请求中的来源地址信息、目标地址信息作为关键字在策略文件中查找处理结果信息;
并根据所述查找到的处理结果信息,决定是否删除或修改所述HTTP请求中的cookie信息。
5.根据权利要求4所述的方法,其特征在于,所述客户端根据所述HTTP请求中的来源地址信息、目标地址信息作为关键字在策略文件中查找处理结果信息的步骤包括:
所述客户端根据所述HTTP请求中的目标地址信息在所述策略文件中查找对应的策略条目,所述策略文件包括多个由来源地址信息、目标地址信息以及处理结果信息组成的策略条目;
所述客户端判断所述HTTP请求中的来源地址信息与查找到的策略条目中的来源地址信息是否匹配;
若匹配则所述查找到的策略条目中的处理结果信息为所需的处理方式。
6.一种防止跨站请求伪造攻击的系统,所述系统包括客户端以及服务端,其特征在于,所述客户端包括:
请求生成模,用于在接收到浏览器的页面消息时,生成HTTP请求;
处理模块,用于根据从所述服务端获取的策略文件对所述HTTP请求中的cookie信息进行过滤处理;
请求发送模块,用于将过滤处理后的所述HTTP请求发送至所述服务端。
7.根据权利要求6所述的系统,其特征在于,所述处理模块还包括策略文件更新单元,所述策略文件更新单元用于在本地文件系统中查找所述HTTP请求的关联策略文件,以及用于在未查找到所述关联策略文件或者所述本地文件系统中的所述关联策略文件的时间戳比所述服务端中的所述关联策略文件的最新时间戳小,从所述服务端更新所述策略文件。
8.根据权利要求7所述的系统,其特征在于,所述策略文件更新单元包括:
时间戳获取子单元,用于从所述服务端获取所述关联策略文件的最新时间戳;
时间戳对比子单元,用于将本地文件系统中的所述关联策略文件的时间戳与从所述服务端获取的所述关联策略文件的最新时间戳进行对比。
9.根据权利要求6所述的系统,其特征在于,所述处理模块还包括Cookie信息过滤处理单元,
所述Cookie信息过滤处理单元用于根据所述HTTP请求中的来源地址信息、目标地址信息作为关键字在策略文件中查找处理结果信息,以及用于根据查找到的处理结果信息决定是否删除或修改所述HTTP请求中的cookie信息。
10.根据权利要求9所述的系统,其特征在于,所述Cookie信息过滤处理单元包括:
策略条目查询子单元,用于根据所述HTTP请求中的目标地址信息在所述策略文件中查找对应的策略条目,所述策略文件包括多个由来源地址信息、目标地址信息以及处理结果信息组成的策略条目;
匹配子单元,用于判断所述HTTP请求中的来源地址信息与查找到的策略条目中的来源地址信息是否匹配,若匹配则所述查找到的策略条目中的处理结果信息为所需的处理方式。

说明书全文

一种防止跨站请求伪造攻击的方法及系统

技术领域

[0001] 本发明涉及网络安全,主要是浏览器安全与web应用安全,尤其涉及一种防止跨站请求伪造攻击的方法及系统。

背景技术

[0002] 现有技术中的网站服务器与用户客户端之间主要通过HTTP(HyperText Transfer Protocol,超文本传输协议)协议进行通信。根据HTTP协议的定义,该协议是一个无状态的协议,即服务器与客户端的每一次通信事物都是彼此独立的,服务器与客户端的下一次通信时,并不知道前一次通信的信息。但在实际应用中,又需要服务器与客户端之间连续、有状态地相互通信,因此cookie技术作为一种最常见的解决方案被引入了进来。
[0003] 为了保持服务器与客户端之间有状态的连接,需要服务器有能识别来自不同客户端的请求,因此需要在服务器或客户端保存用户连接的信息以便服务器识别。而即使选择在服务器保存用户连接信息,也需要在客户端保存一段短小的标识文本。因此,HTTP协议规定了保存在客户端的一段用于说明用户连接信息或标识的文本,被称为cookie。当用户第一次登录网站时,服务器会通过响应报头的set-cookie字段在浏览器建立该服务器网域的cookie。之后,在设置cookie到cookie过期的时间内,从该浏览器发送到该网域的所有请求都会被浏览器自动地在报头的cookie字段中加入该用户在该网域的cookie。这样当服务器收到一个带有cookie信息的请求时,服务器便可以通过该信息识别用户。
[0004] 由于cookie是服务器用于识别用户的关键信息,因此cookie也成为了多种网络攻击的目标。与跨站脚本攻击等直接盗取用户cookie的攻击方式不同,跨站请求伪造(cross site request forgery,CSRF)攻击并不直接获取用户cookie,而是通过浏览器自动添加cookie的机制,借用用户的cookie达到攻击的目的。在用户不知情的情况下,CSRF攻击者伪造了一条用户的请求,通过一些手段使该请求在用户的浏览器上发出。由于该请求携带了用户的cookie,因此会成功地被服务器执行。跨站请求伪造攻击可以让攻击者获取或修改其他用户的账户信息,因此主要破坏了信息安全的保密性与完整性。
[0005] 现有技术中该项缺陷是由对用户请求鉴伪的职责规定不当导致的,并且现有技术只让客户端或只让服务器进行请求真伪的判断,而客户端并不能获知一个从某页面到另一页面的请求是否是服务器期望的,服务器也不能获知来自客户端的请求是在怎样的上下文下被生成的,不能有效地防止CSRF攻击。
[0006] 综上可知,现有技术在实际使用上显然存在不便与缺陷,所以有必要加以改进。

发明内容

[0007] 针对上述的缺陷,本发明的目的在于提供一种防止跨站请求伪造攻击的方法及系统,其通过服务端提供的策略文件来判断客户端请求是否伪造,确保了不被策略文件允许的请求不会携带用户的cookie,保证了客户端的网络安全,解决了现有技术中服务端不了解客户端请求发出的上下文以及客户端不了解服务端希望接受哪些请求的问题。
[0008] 为了实现上述目的,本发明提供一种防止跨站请求伪造攻击的方法,所述方法包括如下步骤:
[0009] 客户端在接收到浏览器的页面消息时,生成HTTP请求;
[0010] 所述客户端根据从服务端获取的策略文件对所述HTTP请求中的cookie信息进行过滤处理;
[0011] 所述客户端将过滤处理后的所述HTTP请求发送至所述服务端。
[0012] 根据本发明的方法,所述客户端根据从服务端获取的策略文件对所述HTTP请求中的cookie信息进行过滤处理的步骤包括:
[0013] 所述客户端在本地文件系统中查找所述HTTP请求的关联策略文件;
[0014] 所述客户端未查找到所述关联策略文件或者所述本地文件系统中的所述关联策略文件的时间戳比所述服务端中的所述关联策略文件的最新时间戳小,从所述服务端更新所述策略文件。
[0015] 根据本发明的方法,所述客户端在本地文件系统中查找所述HTTP请求的关联策略文件的步骤之后包括:
[0016] 所述客户端从所述服务端获取所述关联策略文件的最新时间戳;
[0017] 所述客户端中将本地文件系统中的所述关联策略文件的时间戳与从所述服务端获取的所述关联策略文件的最新时间戳进行对比。
[0018] 根据本发明的方法,所述客户端根据从服务端获取的策略文件对所述HTTP请求中的cookie信息进行过滤处理的步骤还包括:
[0019] 所述客户端根据所述HTTP请求中的来源地址信息、目标地址信息作为关键字在策略文件中查找处理结果信息;
[0020] 并根据所述查找到的处理结果信息,决定是否删除或修改所述HTTP请求中的cookie信息。
[0021] 根据本发明的方法,所述客户端根据所述HTTP请求中的来源地址信息、目标地址信息作为关键字在策略文件中查找处理结果信息的步骤包括:
[0022] 所述客户端根据所述HTTP请求中的目标地址信息在所述策略文件中查找对应的策略条目,所述策略文件包括多个由来源地址信息、目标地址信息以及处理结果信息组成的策略条目;
[0023] 所述客户端判断所述HTTP请求中的来源地址信息与查找到的策略条目中的来源地址信息是否匹配;
[0024] 若匹配则所述查找到的策略条目中的处理结果信息为所需的处理方式。
[0025] 本发明相应提供一种防止跨站请求伪造攻击的系统,所述系统包括客户端以及服务端,所述客户端包括:
[0026] 请求生成模,用于在接收到浏览器的页面消息时,生成HTTP请求;
[0027] 处理模块,用于根据从所述服务端获取的策略文件对所述HTTP请求中的cookie信息进行过滤处理;
[0028] 请求发送模块,用于将过滤处理后的所述HTTP请求发送至所述服务端。
[0029] 根据本发明的系统,所述处理模块还包括策略文件更新单元,
[0030] 所述策略文件更新单元用于在本地文件系统中查找所述HTTP请求的关联策略文件,以及用于在未查找到所述关联策略文件或者所述本地文件系统中的所述关联策略文件的时间戳比所述服务端中的所述关联策略文件的最新时间戳小,从所述服务端更新所述策略文件。
[0031] 根据本发明的系统,所述策略文件更新单元包括:
[0032] 时间戳获取子单元,用于从所述服务端获取所述关联策略文件的最新时间戳;
[0033] 时间戳对比子单元,用于将本地文件系统中的所述关联策略文件的时间戳与从所述服务端获取的所述关联策略文件的最新时间戳进行对比。
[0034] 根据本发明的系统,所述处理模块还包括Cookie信息过滤处理单元,[0035] 所述Cookie信息过滤处理单元用于根据所述HTTP请求中的来源地址信息、目标地址信息作为关键字在策略文件中查找处理结果信息,以及用于根据查找到的处理结果信息决定是否删除或修改所述HTTP请求中的cookie信息。
[0036] 根据本发明的系统,所述Cookie信息过滤处理单元包括:
[0037] 策略条目查询子单元,用于根据所述HTTP请求中的目标地址信息在所述策略文件中查找对应的策略条目,所述策略文件包括多个由来源地址信息、目标地址信息以及处理结果信息组成的策略条目;
[0038] 匹配子单元,用于判断所述HTTP请求中的来源地址信息与查找到的策略条目中的来源地址信息是否匹配,若匹配则所述查找到的策略条目中的处理结果信息为所需的处理方式。
[0039] 本发明通过在客户端维护来自服务端的策略文件,并根据该策略文件内容决定是否保留由客户端生成的每一个HTTP请求的cookie信息进行过滤处理,最后将过滤后的HTTP请求发送至服务端。由于策略文件由服务端提供,服务端准确定义其希望收到来自哪些页面的请求,客户端根据策略文件对HTTP请求进行真伪判断,确保了不被策略文件允许的请求不会携带用户的cookie,服务端不希望接受的请求不会被客户端发出,保证了客户端的网络安全。解决了现有技术中服务端不了解客户端请求发出的上下文以及客户端不了解服务端希望接受哪些请求的问题。附图说明
[0040] 图1是本发明一种防止跨站请求伪造攻击的系统的原理框图
[0041] 图2是本发明一种防止跨站请求伪造攻击的方法的流程图
[0042] 图3是本发明防止跨站请求伪造攻击的方法一种具体实施例的流程图。

具体实施方式

[0043] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0044] 本发明提供了一种防止跨站请求伪造攻击的方法及系统,目标是保护客户端不受CSRF攻击。CSRF攻击成功的根本原因在于:当服务端接收到一个客户端请求时,服务端难以通过该客户端请求的内容判断该请求发出的场合(即该请求是如何由浏览器发出的);而当浏览器端发出一个请求时,尽管浏览器端知道该请求发出的场合,但并不清楚请求对象网站的安全规则,因此会无差别地将cookie字段加入到请求内容中。本发明提供的方法及系统,通过由服务端提供一个请求过滤的策略文件,由浏览器端按照策略文件的内容在请求发出前进行过滤,以及维护本地策略文件时刻保持最新状态的更新规则,确保了每一个由浏览器端发出的请求都符合请求目标网站的安全规则。
[0045] 如图1所示,本发明提供一种防止跨站请求伪造攻击的系统,该系统包括客户端100和服务端200。用户通过客户端100的浏览器来访问应用站点,该服务端2000为应用站点部署的服务器。其中,该客户端100包括:请求生成模块10、处理模块20以及请求发送模块30。
[0046] 请求生成模块10,用于在接收到浏览器的页面消息时,生成HTTP请求。当用户使用客户端100浏览网页时,客户端100会根据网页的脚本语句或用户在网页上触发的事件(如点击),生成HTTP请求。
[0047] 处理模块20,用于根据从服务端200获取的策略文件对HTTP请求中的cookie信息进行过滤处理。
[0048] 请求发送模块30,用于将过滤处理后的HTTP请求发送至服务端200。从而确保了不被策略文件允许的请求不会携带用户的cookie,保证服务端200不希望接受的请求不会被客户端100发出,保证了客户端100的网络安全。
[0049] 如图1所示,处理模块20包括策略文件更新单元21和Cookie信息过滤处理单元22。
[0050] 策略文件更新单元21,用于在本地文件系统中查找所述HTTP请求的关联策略文件,以及用于在未查找到关联策略文件或者本地文件系统中的关联策略文件的时间戳比服务端中的关联策略文件的最新时间戳小,从服务端200更新策略文件。时间戳越小,则该策略文件的修改时间越早,该策略文件较旧;时间戳越大,则该策略文件的修改时间越晚,该策略文件较新。
[0051] 具体的,在客户端100生成HTTP请求之后,客户端100检查该HTTP请求的目标URL,根据在目标URL的域名在本地文件系统中查找是否有相对应的策略文件。本地的策略文件可以默认都存放在某一目录中,并按照固定的文件名格式(如“policy_域名.sqlite”)。这样只要知道了某个请求的目标URL的域名字段,就可以据此获得其本地策略文件的路径和文件名,进而获知该本地策略文件是否存在以及其最近修改日期。如果客户端100的本地文件系统中的关联策略文件的修改时间比服务端200中的关联策略文件的修改时间早,则客户端100需要从服务端200更新策略文件,保证客户端100使用的策略文件是最新的。客户端100可以向服务端20020发起文件下载的请求,将服务端200的策略文件下载到本地的默认路径,并覆盖本地的策略文件(如果本地文件系统有策略文件)。
[0052] Cookie信息过滤处理单元22,用于根据所述HTTP请求中的来源地址信息、目标地址信息作为关键字在策略文件中查找处理结果信息,以及用于根据查找到的处理结果信息决定是否删除或修改所述HTTP请求中的cookie信息。具体的,策略文件包括多个由来源地址信息、目标地址信息以及处理结果信息组成的策略条目。Cookie信息过滤处理单元22根据查找到的处理结果信息对HTTP请求进行处理。如果结果是安全,则对HTTP请求不做修改;如果结果是不安全,则删除该HTTP请求中的cookie字段;如果结果有其他描述,例如仅删除cookie中的某些值,则删除该请求中cookie字段内的相应值。由于CSRF攻击需要借助用户合法的cookie才能成功,因此如果该HTTP请求是合法请求,则其策略条目会在策略文件中显示为“允许”,从而其cookie字段会被保留;如果该HTTP请求是非法请求,则其策略条目不会在策略文件中出现(也即不能根据HTTP请求中的来源地址信息、目标地址信息作为关键字在策略文件中查找到处理结果信息),或者显示为“不允许”,因此其cookie字段被删除。而当服务端200接收到客户端100发来的一个不含cookie字段的HTTP请求时,由于无法判断用户身份,服务端200不会进行与该用户身份相关的操作,从而避免了CSRF攻击。
[0053] 如图1所示,策略文件更新单元21还包括时间戳获取子单元211和时间戳对比子单元212。
[0054] 时间戳获取子单元211,用于从服务端200获取关联策略文件的最新时间戳。具体的,客户端100根据HTTP请求的目标的域名,向对应域的授时接口发出一条GET请求,获得该域的策略文件的最新时间戳。该授时接口可以为一个网页脚本,其URL可以为域名下的固定位置,例如“域名/time.jsp”,其功能为接受一个GET请求,之后读取本域的策略文件(例如“域名/policy_域名.sqlite”)的修改日期,然后将该日期值添加到响应报文中,将响应报文发送给GET请求来源客户端。
[0055] 时间戳对比子单元212,用于将本地文件系统中的关联策略文件的时间戳与从服务端200获取的所述关联策略文件的最新时间戳进行对比。
[0056] 如图1所示,Cookie信息过滤处理单元22还包括策略条目查询子单元221和匹配子单元222。
[0057] 策略条目查询子单元221,用于根据HTTP请求中的目标地址信息在策略文件中查找对应的策略条目,策略文件包括多个由来源地址信息、目标地址信息以及处理结果信息组成的策略条目。
[0058] 匹配子单元222,用于判断HTTP请求中的来源地址信息与查找到的策略条目中的来源地址信息是否匹配,若匹配则查找到的策略条目中的处理结果信息为所需的处理方式。具体的,策略文件的内容由若干个格式为“来源地址,目标地址,处理结果”的策略条目组成,其中来源地址用正则表达式表达,客户端100根据该次HTTP请求的目标地址在策略文件中查找相应的策略条目,在查找到相应策略条目后,检查该HTTP请求的来源地址是否与该条目的来源地址正则表达式匹配,若匹配,该条目的处理结果字段即为所需的处理方式。
[0059] 在本发明中,客户端100用于提供网络浏览器的功能,并在HTTP请求生成之后,对其进行CSRF过滤处理,之后再发出请求。该客户端100包括策略文件更新单元21和Cookie信息过滤处理单元22,策略文件更新单元21用于检查本地策略文件的时间戳,通过GET请求获取服务器端策略文件的时间戳,并通过比较时间戳决定是否需要更新文件。最后通过文件下载获得服务器端最新的策略文件并覆盖本地文件。Cookie信息过滤处理单元22用于将本次请求的来源地址、目标地址作为关键字在策略文件中查找,根据查找到的处理结果,决定是否删除本次请求中的cookie字段内容。服务端200用于提供网站服务器端的功能,并在其域名下的固定位置提供策略文件和授时接口。
[0060] 如图2所示,本发明相应提供一种防止跨站请求伪造攻击的方法,该方法通过图1中的系统实现。该方法包括:
[0061] 步骤S201,客户端在接收到浏览器的页面消息时,生成HTTP请求。本步骤通过如图1所示的请求生成模块10实现。
[0062] 步骤S202,客户端根据从服务端获取的策略文件对HTTP请求中的cookie信息进行过滤处理。本步骤通过如图1所示的处理模块20实现。
[0063] 步骤S203,客户端将过滤处理后的HTTP请求发送至服务端。本步骤通过如图1所示的请求发送模块30实现。
[0064] 优选的是,客户端根据从服务端获取的策略文件对HTTP请求中的cookie信息进行过滤处理的步骤包括:客户端在本地文件系统中查找HTTP请求的关联策略文件;客户端未查找到关联策略文件或者本地文件系统中的关联策略文件的时间戳比服务端中的关联策略文件的最新时间戳小,从服务端更新策略文件。
[0065] 优选的是,客户端在本地文件系统中查找HTTP请求的关联策略文件的步骤之后包括:客户端从服务端获取关联策略文件的最新时间戳;客户端中将本地文件系统中的关联策略文件的时间戳与从服务端获取的关联策略文件的最新时间戳进行对比。
[0066] 优选的是,客户端根据从服务端获取的策略文件对HTTP请求中的cookie信息进行过滤处理的步骤还包括:客户端根据HTTP请求中的来源地址信息、目标地址信息作为关键字在策略文件中查找处理结果信息;并根据查找到的处理结果信息,决定是否删除或修改HTTP请求中的cookie信息。
[0067] 优选的是,客户端根据HTTP请求中的来源地址信息、目标地址信息作为关键字在策略文件中查找处理结果信息的步骤包括:客户端根据HTTP请求中的目标地址信息在策略文件中查找对应的策略条目,策略文件包括多个由来源地址信息、目标地址信息以及处理结果信息组成的策略条目;客户端判断HTTP请求中的来源地址信息与查找到的策略条目中的来源地址信息是否匹配;若匹配则查找到的策略条目中的处理结果信息为所需的处理方式。
[0068] 图3是本发明防止跨站请求伪造攻击的方法一种具体实施例的流程图。该流程包括以下步骤:
[0069] 步骤S301,客户端生成HTTP请求。当用户使用客户端100浏览网页时,客户端会根据网页的脚本语句或用户在网页上触发的事件(如点击),生成HTTP请求。在本发明中,客户端生成HTTP请求后不会立刻执行,而是引入以下步骤的处理流程。
[0070] 步骤S302,在本地文件系统中检查是否有与HTTP请求相对应的策略文件。若有则进入步骤S303,否则进入步骤S305。在客户端100生成HTTP请求之后,客户端检查该HTTP请求的目标URL,根据在目标URL的域名在本地文件系统中查找是否有相对应的策略文件。本地的策略文件可以默认都存放在某一目录中,并按照固定的文件名格式(如“policy_域名.sqlite”)。这样只要知道了某个请求的目标URL的域名字段,就可以据此获得其本地策略文件的路径和文件名,进而获知该本地策略文件是否存在以及其最近修改日期。
[0071] 步骤S303,客户端根据该请求的目标的域名,向对应域的授时接口发出一条GET请求,获得该域的策略文件的最新时间戳。该授时接口可以为一个网页脚本,其URL可以为域名下的固定位置,例如“域名/time.jsp”,其功能为接受一个GET请求,之后读取本域的策略文件(例如“域名/policy_域名.sqlite”)的修改日期,然后将该日期值添加到响应报文中,将响应报文发送给GET请求来源客户端。
[0072] 步骤S304,客户端判断本地策略文件的时间戳是否小于GET请求获得的策略文件的时间戳。若本地时间戳小于GET请求获得的时间戳,则执行步骤S305;本地时间戳不小于GET请求获得的时间戳,则执行步骤S306。在本步骤中,时间戳越小,则该策略文件的修改时间越早,该策略文件较旧;时间戳越大,则该策略文件的修改时间越晚,该策略文件较新。
[0073] 步骤S305,客户端更新本地的策略文件。具体的,由于客户端本地的策略文件不存在或其时间戳比服务器端的策略文件的时间戳更旧,因此需要更新,保证客户端使用的策略文件是最新的。客户端可以向服务端发起文件下载的请求,将服务端的策略文件下载到本地的默认路径,并覆盖本地的策略文件(如果本地文件系统有策略文件)。
[0074] 步骤S306,客户端读取本地的策略文件并进行查询。在本步骤中,策略文件的内容由若干个格式为“来源地址信息,目标地址信息,处理结果信息”的策略条目组成,其中来源地址用正则表达式表达。客户端根据该次HTTP请求的目标地址在策略文件中查找相应的条目。在查找到相应条目后,检查该HTTP请求的来源地址是否与该条目的来源地址正则表达式匹配,若匹配,该条目的处理结果字段即为所需的处理方式。
[0075] 步骤S307,客户端根据查找到的处理结果对HTTP请求进行过滤处理。具体的,客户端根据步骤S306中查找到的处理结果信息对HTTP请求进行处理,如果结果是安全,则对请求不做修改;如果结果是不安全,则删除该请求中的cookie字段;如果结果有其他描述,例如仅删除cookie中的某些值,则删除该请求中cookie字段内的相应值。
[0076] 步骤S308,客户端将处理完毕的请求发送到服务端。
[0077] 步骤S309,服务端接收到该请求并进行相应处理。
[0078] 由于CSRF攻击需要借助用户合法的cookie才能成功,因此如果该HTTP请求是合法请求,则其策略条目会在策略文件中显示为“允许”,从而其cookie字段会被保留;如果该HTTP请求是非法请求,则其策略条目不会在策略文件中出现(也即不能根据HTTP请求中的来源地址信息、目标地址信息作为关键字在策略文件中查找到处理结果信息),或者显示为“不允许”,因此其cookie字段被删除。而当服务端接收到客户端发来的一个不含cookie字段的HTTP请求时,由于无法判断用户身份,服务端不会进行与该用户身份相关的操作,从而避免了CSRF攻击。
[0079] 综上所述,本发明通过在客户端维护来自服务端的策略文件,并根据该策略文件内容决定是否保留由客户端生成的每一个HTTP请求的cookie信息进行过滤处理,最后将过滤后的HTTP请求发送至服务端。由于策略文件由服务端提供,服务端准确定义其希望收到来自哪些页面的请求,客户端根据策略文件对HTTP请求进行真伪判断,确保了不被策略文件允许的请求不会携带用户的cookie,服务端不希望接受的请求不会被客户端发出,保证了客户端的网络安全。解决了现有技术中服务端不了解客户端请求发出的上下文以及客户端不了解服务端希望接受哪些请求的问题。
[0080] 当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈