保护Cookie信息的方法及Web服务器前置网关的制作方法
【专利摘要】本发明实施例公开了一种保护Cookie信息的方法及Web服务器前置网关,其中所述方法,包括:从客户端接收超文本连接协议HTTP请求报文;判断存储的关系数据库中是否包含所述HTTP请求报文中的Cookie值、客户端地址、服务器地址组成的表项;当判断结果为是,确定所述HTTP请求报文合法,则将所述HTTP请求报文转发给所述服务器;当判断结果为否,确定所述HTTP请求报文非法,丢弃所述HTTP请求报文或指示所述服务器忽略所述HTTP请求报文。本发明实施例提高了Web服务器的安全性。
【专利说明】保护Cooki e信息的方法及Web服务器前置网关
【技术领域】
[0001]本发明涉及通信领域,尤其涉及保护Cookie信息的方法及Web服务器前置网关。
【背景技术】
[0002]超文本传输协议(Hypertext Transfer Protocol,HTTP)是Web应用的核心协议。HTTP在Web的客户程序和服务器程序中得以实现,客户端使用HTTP协议与Web服务器实现数据交互。HTTP是一种无状态、无连接的协议,不能在服务器上保持一次会话的持续状态信息。为了记录用户浏览页面的状态信息,向用户提供更友好的交互环境,Cookie技术就应运而生。Cookie是Web服务器产生一定的信息,存放在客户端,用来维持客户端和服务器之间连接状态的一种技术。Cookie技术是对HTTP协议的一种补充。通常应用Cookie的过程如下:C00kie由服务器端生成,发送给客户端的Web浏览器,浏览器会将Cookie的名称和值保存到本地,浏览器下次请求同一网站时就发送该Cookie给服务器。Cookie名称和值由服务器端自己定义。目前有如下现有技术:
[0003]服务器发给客户端的HTTP应答报文,在经过Web服务器前置网关时,网关根据报文中Cookie的值(比如,Key=V)计算签名,并将签名连接在原Cookie的值之后(变成Key=V+S)0将Cookie的值和签名一起加密之后,替换原来的Cookie值,修改HTTP报文内容后,将报文发到客户端。
[0004]客户端发给服务器的HTTP请求报文,经过网关时,网关解密Cookie的值(Key=V+S),在判定Cookie签名正确后,将Cookie恢复成加密之前的值(Key=V),再将HTTP请求报文发给Web服务器。
[0005]如果HTTP请求报文有虚假的Cookie (比如,Key=V’),解密之后计算出的签名值不合法,可判定Cookie不合法。这样就可以鉴别报文的Cookie是否被篡改。
[0006]但是现有技术的上述方案,存在如下不足:
[0007]首先,需要修改Cookie的值的内容,即需要修改合法连接的HTTP报文的内容,客户端收到的Cookie其实不是服务器发出的Cookie,影响了 Cookie的应用扩展性。服务器产生的Cookie为:Key=V,而客户端收到的Cookie为:Key=D (V+S),如果客户端上层应用程序需要使用Cookie的值V时,这种技术就不适用。
[0008]其次,不能防止Cookie欺骗,如果黑客只是盗用其他用户的Cookie,不修改Cookie的内容,并发起HTTP连接,该现有技术不能识别这种攻击方式。例,如果黑客盗取Cookie:Key=D (V+S),不篡改Cookie,直接发起的非法连接中包含Cookie:Key=D (V+S),网关无法识别这种非法连接。
[0009]再次,目前的处理技术需要改变Cookie的内容,网关处理时每个Cookie值需要分别进行加密和解密的计算处理,一次HTTP连接可能包含多个Cookie,使得设备处理性能很难提高。要提高流量处理性能,需要硬件上性能很强的处理器实现。
【发明内容】
[0010]本发明实施例提供保护Cookie信息的方法及Web服务器前置网关,能提高Web服务器的安全性。
[0011]本发明第一方面提供一种保护Cookie信息的方法,其可包括:
[0012]从客户端接收超文本连接协议HTTP请求报文;
[0013]判断存储的关系数据库中是否包含所述HTTP请求报文中的Cookie值、客户端地址、服务器地址组成的表项;所述关系数据库用于记录Cookie值、客户端地址、服务器地址三者对应关系;
[0014]当判断结果为是,确定所述HTTP请求报文合法,则将所述HTTP请求报文转发给所述服务器;
[0015]当判断结果为否,确定所述HTTP请求报文非法,丢弃所述HTTP请求报文或指示所述服务器忽略所述HTTP请求报文。
[0016]结合第一方面,在第一种可行的实施方式中,从客户端接收超文本连接协议HTTP请求报文之前,还包括:
[0017]从服务器接收HTTP应答报文;
[0018]从所述接收的HTTP应答报文中提取Cookie值、客户端地址以及服务器地址生成所述关系数据库。
[0019]结合第一方面,在第二种可行的实施方式中,所述从客户端接收超文本连接协议HTTP请求报文之后,还包括:
[0020]判断所述HTTP请求报文的客户端地址是否包含在存储的源地址黑名单中,如果判断为是,则丢弃所述HTTP请求报文;
[0021]如果判断为否,则判断存储的关系数据库中是否包含所述HTTP请求报文中的Cookie值、客户端地址、服务器地址组成的表项。
[0022]结合第一方面至第一方面的第二种可行的实施方式中任一种,在第三种可行的实施方式中,所述确定所述HTTP请求报文非法,丢弃所述HTTP请求报文或指示所述服务器忽略所述HTTP请求报文,包括:
[0023]统计在预设的第一时间范围内,所述客户端地址作为源地址向所述服务器发送HTTP请求报文的次数;
[0024]当统计的次数超过预设的第一阈值,则将所述客户端的地址加入存储的源地址黑名单中,并丢弃所述HTTP请求报文;
[0025]当统计的次数未超过所述预设的第一阈值,则修改所述HTTP请求报文中的所述Cookie值,用于指示所述服务器忽略所述HTTP请求报文。
[0026]结合第一方面的第二种可行的实施方式中任一种,在第四种可行的实施方式中,本发明实施例的方法还包括:
[0027]实时统计每一客户端地址在源地址黑名单中生效时刻开始,持续第二时间之后,从每一客户端地址对应的客户端接收到的HTTP请求报文数目;
[0028]当统计到从一个或多个客户端接收到的HTTP请求报文数目小于预设的第二阈值,则从所述源地址黑名单中删除所述一个或多个客户端的客户端地址。
[0029]本发明第二方面提供一种Web服务器前置网关,其可包括:
[0030]存储模块,用于存储关系数据库,所述关系数据库用于记录Cookie值、客户端地址、服务器地址三者对应关系;
[0031 ] 接收模块,用于从客户端接收超文本连接协议HTTP请求报文;
[0032]判断模块,用于判断存储的关系数据库中是否包含所述HTTP请求报文中的Cookie值、客户端地址、服务器地址组成的表项;
[0033]处理模块,用于当所述判断模块的判断结果为是时,确定所述HTTP请求报文合法,并将所述HTTP请求报文转发给所述服务器;当所述判断模块的判断结果为否时,确定所述HTTP请求报文非法,丢弃所述HTTP请求报文或指示所述服务器忽略所述HTTP请求报文。
[0034]结合第二方面,在第一种可行的实施方式中,所述接收模块还用于从服务器接收HTTP应答报文;并从所述接收的HTTP应答报文中提取Cookie值、客户端地址以及服务器地址生成所述关系数据库。
[0035]结合第二方面,在第二种可行的实施方式中,所述判断模块还用于当所述接收模块从客户端接收超文本连接协议HTTP请求报文之后,判断所述HTTP请求报文的客户端地址是否包含在所述存储模块存储的源地址黑名单中,如果判断为是,则指示所述处理模块丢弃所述HTTP请求报文;如果判断为否,则判断存储的关系数据库中是否包含所述HTTP请求报文中的Cookie值、客户端地址、服务器地址组成的表项。
[0036]结合第二方面至第二方面的第二种可行的实施方式中任一种,在第三种可行的实施方式中,所述处理模块,包括:
[0037]第一统计模块,用于统计在预设的第一时间范围内,所述客户端地址作为源地址向所述服务器发送HTTP请求报文的次数;
[0038]第一处理子模块,用于当所述第一统计模块统计的次数超过预设的第一阈值,则将所述客户端的地址加入存储的源地址黑名单中,并丢弃所述HTTP请求报文;
[0039]第二处理子模块,用于当所述第一统计模块统计的次数未超过所述预设的第一阈值,则修改所述HTTP请求报文中的所述Cookie值,用于指示所述服务器忽略所述HTTP请求报文。
[0040]结合第二方面的第二种可行的实施方式中任一种,在第四种可行的实施方式中,本发明实施例的网关还包括:
[0041]第二统计模块,用于实时统计每一客户端地址在源地址黑名单中生效时刻开始,持续第二时间之后,从每一客户端地址对应的客户端接收到的HTTP请求报文数目;并当统计到从一个或多个客户端接收到的HTTP请求报文数目小于预设的第二阈值,则从所述源地址黑名单中删除所述一个或多个客户端的客户端地址。
[0042]由上可见,在本发明的一些可行的实施方式中,从客户端接收超文本连接协议HTTP请求报文;判断存储的关系数据库中是否包含所述HTTP请求报文中的Cookie值、客户端地址、服务器地址组成的表项;所述关系数据库用于记录Cookie值、客户端地址、服务器地址三者对应关系;当判断结果为是,确定所述HTTP请求报文合法,则将所述HTTP请求报文转发给所述服务器;当判断结果为否,确定所述HTTP请求报文非法,丢弃所述HTTP请求报文或指示所述服务器忽略所述HTTP请求报文。由于本发明实施例通过Cookie值、客户端地址、服务器地址三者对应关系唯一限定了一次合法的HTTP请求,这样,其可在不修改合法的报文中的Cookie值时,防止Cookie篡改攻击和Cookie欺骗攻击(因为,即使Cookie被盗,本发明实施例也可通过客户端地址或服务器地址判断HTTP请求的合法性),提高了Web服务器的安全性,以及,本发明实施例不需要通过修改Cookie值来保证Cookie的安全,减轻了网关的性能负担。
【专利附图】
【附图说明】
[0043]图1为本发明实施例的保护Cookie信息的方法的一实施例的流程示意图;
[0044]图2为本发明实施例的保护Cookie信息的方法的另一实施例的流程示意图;
[0045]图3为本发明的Web服务器前置网关的一实施例的结构组成示意图;
[0046]图4为本发明的Web服务器前置网关的另一实施例的结构组成示意图;
[0047]图5为本发明的Web服务器前置网关的另一实施例的结构组成示意图;
[0048]图6为本发明的Web服务器前置网关的另一实施例的结构组成示意图。
【具体实施方式】
[0049]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
[0050]图1为本发明实施例的保护Cookie信息的方法的一实施例的流程示意图。如图1所示,本发明实施例的方法可包括:
[0051]步骤S110,从客户端接收超文本连接协议HTTP请求报文。
[0052]步骤S111,判断存储的关系数据库中是否包含所述HTTP请求报文中的Cookie值、客户端地址、服务器地址组成的表项;所述关系数据库用于记录Cookie值、客户端地址、服务器地址三者对应关系,当判断结果为是,执行步骤S112;当判断结果为否,执行步骤S113。
[0053]本发明实施例,当从客户端接收到HTTP请求报文时,可提取所述HTTP请求报文中的Cookie值(比如,Key=V),所述HTTP请求报文的客户端地址(也是请求报文的源地址,比如,IP地址I)、所述HTTP请求报文的服务器地址(也是请求报文的目的地址,比如,IP地址2);然后查询关系数据库中是否包含所述HTTP请求报文中的Cookie值、客户端地址、月艮务器地址组成的表项(比如,表项包括=Cookie:Key=V,客户端地址:IP地址1,服务器地址:IP地址2 ),当判断为是时,则执行步骤S112 ;当判断为否时,则执行步骤S113。
[0054]具体实现中,在本发明实施例的关系数据库用于记录Cookie值、客户端地址、月艮务器地址三者对应关系。本发明实施例可在步骤Slll和步骤SllO之前,当从服务器接收到HTTP应答报文时,所述接收的HTTP应答报文中提取Cookie值、客户端地址以及服务器地址生成所述关系数据库。
[0055]具体实现中,关系数据库可通过多种方式存储Cookie值、客户端地址以及服务器地址三者之间的对应关系。其中的一种方式可为:由Cookie值和服务器地址计算一个哈希(Hash)值,然后将需对应的客户端地址关联到此Hash值节点上。当然,具体实现中,三者关系的建立也可以有其他的方式,比如直接建立一个内容包含三者的表项,通过该表项表头标识唯一标识该表项。
[0056]具体实现中,在步骤Slll可由于多种原因导致查询不到关系数据库存储的表项,t匕如,Cookie值被篡改;比如,非法的客户端盗取合法的Cookie值发起的HTTP请求报文;I:匕如,Cookie值已经重新分配,但是发送的HTTP还携带过期的Cookie值等等。
[0057]步骤S112,确定所述HTTP请求报文合法,则将所述HTTP请求报文转发给所述服务器。
[0058]步骤SI 13,确定所述HTTP请求报文非法,丢弃所述HTTP请求报文或指示所述服务器忽略所述HTTP请求报文。
[0059]具体实现中,在步骤S113,当确定所述HTTP请求报文非法后,可直接丢弃所述HTTP请求报文或指示所述服务器忽略所述HTTP请求报文。其中,指示所述服务器忽略所述HTTP请求报文的方式可与服务器预先协商,方式不限,本发明实施例采用的其中一种指示方式为:将修改客户端发送的Cookie值为无意义的Cookie值,比如,将客户端发送的Cookie:Key=V,修改为Cookie:Key=Null ;或者将客户端发送的Cookie值修改为与原来的Cookie值字符串相同长度的无意义的值,比如,将客户端发送的Cookie:Key=1000,修改为Cookie:Key=XXXX。
[0060]具体实现中,在步骤S113,当确定所述HTTP请求报文非法后,选择丢弃所述HTTP请求报文或指示所述服务器忽略所述HTTP请求报文可通过进一步的一些判断,这些判断可包括:
[0061]统计在预设的第一时间范围内,所述客户端地址作为源地址向所述服务器发送HTTP请求报文的次数;
[0062]当统计的次数超过预设的第一阈值,则将所述客户端的地址加入存储的源地址黑名单中,并丢弃所述HTTP请求报文;
[0063]当统计的次数未超过所述预设的第一阈值,则修改所述HTTP请求报文中的所述Cookie值,用于指示所述服务器忽略所述HTTP请求报文。此处,修改所述HTTP请求报文中的所述Cookie值,用于指示所述服务器忽略所述HTTP请求报文与前面描述的指示所述服务器忽略所述HTTP请求报文的方式可以相同,在此不进行赘述。
[0064]具体实现中,当服务器接收到无意义的Cookie值的HTTP请求报文之后,可向客户端回复响应报文,提示客户端会话已经失败。
[0065]具体实现中,本发明实施例的方法,还可包括维护黑名单的维护问题,这些维护包括黑名单的老化处理,具体的,本发明实施例可实时统计每一客户端地址在源地址黑名单中生效时刻开始,持续第二时间之后,从每一客户端地址对应的客户端接收到的HTTP请求报文数目;当统计到从一个或多个客户端接收到的HTTP请求报文数目小于预设的第二阈值,则从所述源地址黑名单中删除所述一个或多个客户端的客户端地址。
[0066]具体实现中,本发明实施例在包含源地址黑名单的情形下,在步骤SllO和步骤Slll之间还可包括:
[0067]判断所述HTTP请求报文的客户端地址是否包含在存储的源地址黑名单中,如果判断为是,则丢弃所述HTTP请求报文;
[0068]如果判断为否,则执行步骤S111。
[0069]本发明实施例当采用黑名单机制之后,可防止同一客户端在一定时间范围内发起大量非法HTTP连接,防止Web服务器被多次攻击。
[0070]图2为本发明实施例的保护Cookie信息的方法的另一实施例的流程示意图。如图2所示,其在图1实施例的基础上对本发明实施例方法的流程进一步进行了细化。如图2所示,其可包括:
[0071]步骤S210,接收到HTTP报文;
[0072]步骤S211,识别所述HTTP报文是HTTP请求报文,还是HTTP应答报文,或者是其他报文。
[0073]步骤S212,当识别所述HTTP报文是HTTP请求报文,请求报文中携带Cookie,判断所述HTTP请求报文的客户端地址是否包含在存储的源地址黑名单中,如果判断为是,执行步骤S213 ;如果判断为否,执行步骤S214。
[0074]步骤S213,丢弃所述HTTP请求报文,并维持所述黑名单,方法结束。
[0075]步骤S214,判断存储的关系数据库中是否包含所述HTTP请求报文中的Cookie值、客户端地址、服务器地址组成的表项,如果判断为是,执行步骤S215 ;如果判断为否,执行步骤S216。具体实现中,关系数据库与上一实施例相同,在此不进行赘述。
[0076]步骤S215,确定所述HTTP请求报文合法,则将所述HTTP请求报文转发给所述服务器,方法结束。
[0077]步骤S216,统计在预设的第一时间范围内,所述客户端地址作为源地址向所述服务器发送HTTP请求报文的次数。
[0078]步骤S217,判断统计的次数是否超过预设的第一阈值,如果判断为是,执行步骤S218 ;如果判断为否,执行步骤S219。
[0079]步骤S218,将所述客户端的地址加入存储的源地址黑名单中,并丢弃所述HTTP请求报文,方法结束。
[0080]步骤S219,修改所述HTTP请求报文中的所述Cookie值,用于指示所述服务器忽略所述HTTP请求报文。具体实现中,指示所述服务器忽略
[0081]步骤S220,当识别所述HTTP报文是HTTP应答报文,从所述接收的HTTP应答报文中提取Cookie值、客户端地址以及服务器地址生成所述关系数据库。
[0082]所述HTTP请求报文的指示方式与上一实施例可相同,在此不进行赘述。
[0083]由上可见,在本发明的一些可行的方法实施方式中,从客户端接收超文本连接协议HTTP请求报文;判断存储的关系数据库中是否包含所述HTTP请求报文中的Cookie值、客户端地址、服务器地址组成的表项;所述关系数据库用于记录Cookie值、客户端地址、月艮务器地址三者对应关系;当判断结果为是,确定所述HTTP请求报文合法,则将所述HTTP请求报文转发给所述服务器;当判断结果为否,确定所述HTTP请求报文非法,丢弃所述HTTP请求报文或指示所述服务器忽略所述HTTP请求报文。由于本发明实施例通过Cookie值、客户端地址、服务器地址三者对应关系唯一限定了一次合法的HTTP请求,这样,其可在不修改合法的报文中的Cookie值时,防止Cookie篡改攻击和Cookie欺骗攻击(因为,即使Cookie被盗,本发明实施例也可通过客户端地址或服务器地址判断HTTP请求的合法性),提高了 Web服务器的安全性。
[0084]相应的,本发明实施例提供了可用于实施本发明上述方法的装置实施例。下面对本发明提供的用于实施上述方法的Web服务器前置网关的结构组成实施例进行举例说明。
[0085]图3为本发明的Web服务器前置网关的一实施例的结构组成示意图。如图3所示,其可包括:存储模块31、接收模块32、判断模块33以及处理模块34,其中:
[0086]存储模块31,用于存储关系数据库,所述关系数据库用于记录Cookie值、客户端地址、服务器地址三者对应关系。
[0087]具体实现中,在本发明实施例的关系数据库用于记录Cookie值、客户端地址、月艮务器地址三者对应关系(比如,表项包括:Cookie:Key=V,客户端地址:IP地址I,服务器地址:IP地址2)。
[0088]具体实现中,本发明实施例的接收模块32可用于从服务器接收到HTTP应答报文时,并所述接收的HTTP应答报文中提取Cookie值、客户端地址以及服务器地址生成所述关系数据库。具体实现中,关系数据库可通过多种方式存储Cookie值、客户端地址以及服务器地址三者之间的对应关系。其中的一种方式可为:由Cookie值和服务器地址计算一个哈希(Hash)值,然后将需对应的客户端地址关联到此Hash值节点上。当然,具体实现中,三者关系的建立也可以有其他的方式,比如直接建立一个内容包含三者的表项,通过该表项表头标识唯一标识该表项。
[0089]接收模块32,还用于从客户端接收超文本连接协议HTTP请求报文。
[0090]判断模块33,用于判断所述存储模块31存储的关系数据库中是否包含所述接收模块32接收的HTTP请求报文中的Cookie值、客户端地址、服务器地址组成的表项。
[0091]本发明实施例,当接收模块32从客户端接收到HTTP请求报文时,可提取所述HTTP请求报文中的Cookie值(比如,Key=V),所述HTTP请求报文的客户端地址(也是请求报文的源地址,比如,IP地址I)、所述HTTP请求报文的服务器地址(也是请求报文的目的地址,t匕如,IP地址2);然后判断模块33可查询关系数据库中是否包含所述HTTP请求报文中的Cookie值、客户端地址、服务器地址组成的表项(比如,表项包括:Cookie:Key=V,客户端地址:IP地址I,服务器地址:IP地址2)。
[0092]处理模块34,用于当所述判断模块33的判断结果为是时,确定所述HTTP请求报文合法,并将所述HTTP请求报文转发给所述服务器;当所述判断模块33的判断结果为否时,确定所述HTTP请求报文非法,丢弃所述HTTP请求报文或指示所述服务器忽略所述HTTP请求报文。
[0093]具体实现中,当处理模块34确定所述HTTP请求报文非法后,可直接丢弃所述HTTP请求报文或指示所述服务器忽略所述HTTP请求报文。其中,指示所述服务器忽略所述HTTP请求报文的方式可与服务器预先协商,方式不限,本发明实施例采用的其中一种指示方式为:将修改客户端发送的Cookie值为无意义的Cookie值,比如,将客户端发送的Cookie:Key=V,修改为Cookie:Key=Null ;或者将客户端发送的Cookie值修改为与原来的Cookie值字符串相同长度的无意义的值,比如,将客户端发送的Cookie:Key=1000,修改为Cookie:Key=XXXX。
[0094]具体实现中,如图4所示,本发明实施例的处理模块34可进一步包括:
[0095]第一统计模块341,用于统计在预设的第一时间范围内,所述客户端地址作为源地址向所述服务器发送HTTP请求报文的次数;
[0096]第一处理子模块342,用于当所述第一统计模块341统计的次数超过预设的第一阈值,则将所述客户端的地址加入存储的源地址黑名单中,并丢弃所述HTTP请求报文;
[0097]第二处理子模块343,用于当所述第一统计模块341统计的次数未超过所述预设的第一阈值,则修改所述HTTP请求报文中的所述Cookie值,用于指示所述服务器忽略所述HTTP请求报文。此处,修改所述HTTP请求报文中的所述Cookie值,用于指示所述服务器忽略所述HTTP请求报文与前面描述的指示所述服务器忽略所述HTTP请求报文的方式可以相同,在此不进行赘述。
[0098]具体实现中,当服务器接收到无意义的Cookie值的HTTP请求报文之后,可向客户端回复响应报文,提示客户端会话已经失败。
[0099]如图5所示,本发明实施例的Web服务器前置网关在前述实施例的基础上,还可包括:第二统计模块35,用于实时统计每一客户端地址在源地址黑名单中生效时刻开始,持续第二时间之后,从每一客户端地址对应的客户端接收到的HTTP请求报文数目;当统计到从一个或多个客户端接收到的HTTP请求报文数目小于预设的第二阈值,则从所述存储模块31存储的源地址黑名单中删除所述一个或多个客户端的客户端地址。
[0100]具体实现中,本发明实施例在包含源地址黑名单的情形下,所述判断模块33还用于,在从客户端接收到HTTP请求报文之后,判断所述HTTP请求报文的客户端地址是否包含在存储的源地址黑名单中,如果判断为是,则丢弃所述HTTP请求报文;如果判断为否,则继续判断存储的关系数据库中是否包含所述HTTP请求报文中的Cookie值、客户端地址、服务器地址组成的表项。
[0101]本发明实施例当采用黑名单机制之后,可防止同一客户端在一定时间范围内发起大量非法HTTP连接,防止Web服务器被多次攻击。
[0102]图6为本发明的Web服务器前置网关的另一实施例的结构组成示意图。本实施例与前述几个实施例的区别在于通过硬件组成的角度对Web服务器前置网关的结构组成进行描述。如图6所示,其可包括:接收器61、存储器62、处理器63,以及发送器64,其中:
[0103]所述接收器61用于从客户端接收超文本连接协议HTTP请求报文;
[0104]所述处理器63用于判断所述存储器62存储的关系数据库中是否包含所述HTTP请求报文中的Cookie值、客户端地址、服务器地址组成的表项;所述关系数据库用于记录Cookie值、客户端地址、服务器地址三者对应关系;当判断结果为是,确定所述HTTP请求报文合法,则由所述发送器64将所述HTTP请求报文转发给所述服务器;当判断结果为否,确定所述HTTP请求报文非法,丢弃所述HTTP请求报文或通过所述发送器64指示所述服务器忽略所述HTTP请求报文。
[0105]在一些可行的实施方式中,所述接收器61从客户端接收超文本连接协议HTTP请求报文之前,还用于:从服务器接收HTTP应答报文;并从所述接收的HTTP应答报文中提取Cookie值、客户端地址以及服务器地址生成所述关系数据库。
[0106]在一些可行的实施方式中,所述接收器61所述从客户端接收超文本连接协议HTTP请求报文之后,所述处理器63还用于判断所述HTTP请求报文的客户端地址是否包含在存储的源地址黑名单中,如果判断为是,则丢弃所述HTTP请求报文;如果判断为否,则判断存储的关系数据库中是否包含所述HTTP请求报文中的Cookie值、客户端地址、服务器地址组成的表项。
[0107]在一些可行的实施方式中,所述处理器确定所述HTTP请求报文非法,丢弃所述HTTP请求报文或指示所述服务器忽略所述HTTP请求报文,具体执行如下步骤:
[0108]统计在预设的第一时间范围内,所述客户端地址作为源地址向所述服务器发送HTTP请求报文的次数;
[0109]当统计的次数超过预设的第一阈值,则将所述客户端的地址加入存储的源地址黑名单中,并丢弃所述HTTP请求报文;
[0110]当统计的次数未超过所述预设的第一阈值,则修改所述HTTP请求报文中的所述Cookie值,并通过所述发送器64指示所述服务器忽略所述HTTP请求报文。
[0111]在一些可行的实施方式中,所述处理器63还用于:实时统计每一客户端地址在源地址黑名单中生效时刻开始,持续第二时间之后,从每一客户端地址对应的客户端接收到的HTTP请求报文数目;当统计到从一个或多个客户端接收到的HTTP请求报文数目小于预设的第二阈值,则从所述源地址黑名单中删除所述一个或多个客户端的客户端地址。
[0112]本发明实施例的模块,可用通用集成电路(如中央处理器CPU),或以专用集成电路(ASIC)来实现。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory, RAM)、磁盘或光盘等。
[0113]以上所列举的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【权利要求】
1.一种保护Cookie信息的方法,其特征在于,包括: 从客户端接收超文本连接协议HTTP请求报文; 判断存储的关系数据库中是否包含所述HTTP请求报文中的Cookie值、客户端地址、月艮务器地址组成的表项;所述关系数据库用于记录Cookie值、客户端地址、服务器地址三者对应关系; 当判断结果为是,确定所述HTTP请求报文合法,则将所述HTTP请求报文转发给所述服务器; 当判断结果为否,确定所述HTTP请求报文非法,丢弃所述HTTP请求报文或指示所述服务器忽略所述HTTP请求报文。
2.如权利要求1所述的保护Cookie信息的方法,其特征在于,从客户端接收超文本连接协议HTTP请求报文之前,还包括: 从服务器接收HTTP应答报文; 从所述接收的HTTP应答报文中提取Cookie值、客户端地址以及服务器地址生成所述关系数据库。
3.如权利要求1所述的保护Cookie信息的方法,其特征在于,所述从客户端接收超文本连接协议HTTP请求报文之后,还包括: 判断所述HTTP请求报文的客户端地址是否包含在存储的源地址黑名单中,如果判断为是,则丢弃所述HTTP请求报文; 如果判断为否,则判断存储的关系数据库中是否包含所述HTTP请求报文中的Cookie值、客户端地址、服务器地址组成的表项。
4.如权利要求1-3中任一项所述的保护Cookie信息的方法,其特征在于,所述确定所述HTTP请求报文非法,丢弃所述HTTP请求报文或指示所述服务器忽略所述HTTP请求报文,包括: 统计在预设的第一时间范围内,所述客户端地址作为源地址向所述服务器发送HTTP请求报文的次数; 当统计的次数超过预设的第一阈值,则将所述客户端的地址加入存储的源地址黑名单中,并丢弃所述HTTP请求报文; 当统计的次数未超过所述预设的第一阈值,则修改所述HTTP请求报文中的所述Cookie值,用于指示所述服务器忽略所述HTTP请求报文。
5.如权利要求3所述的保护Cookie信息的方法,其特征在于,还包括: 实时统计每一客户端地址在源地址黑名单中生效时刻开始,持续第二时间之后,从每一客户端地址对应的客户端接收到的HTTP请求报文数目; 当统计到从一个或多个客户端接收到的HTTP请求报文数目小于预设的第二阈值,则从所述源地址黑名单中删除所述一个或多个客户端的客户端地址。
6.一种Web服务器前置网关,其特征在于,包括: 存储模块,用于存储关系数据库,所述关系数据库用于记录Cookie值、客户端地址、月艮务器地址三者对应关系; 接收模块,用于从客户端接收超文本连接协议HTTP请求报文; 判断模块,用于判断存储的关系数据库中是否包含所述HTTP请求报文中的Cookie值、客户端地址、服务器地址组成的表项; 处理模块,用于当所述判断模块的判断结果为是时,确定所述HTTP请求报文合法,并将所述HTTP请求报文转发给所述服务器;当所述判断模块的判断结果为否时,确定所述HTTP请求报文非法,丢弃所述HTTP请求报文或指示所述服务器忽略所述HTTP请求报文。
7.如权利要求6所述的Web服务器前置网关,其特征在于,所述接收模块还用于从服务器接收HTTP应答报文;并从所述接收的HTTP应答报文中提取Cookie值、客户端地址以及服务器地址生成所述关系数据库。
8.如权利要求6所述的Web服务器前置网关,其特征在于,所述判断模块还用于当所述接收模块从客户端接收超文本连接协议HTTP请求报文之后,判断所述HTTP请求报文的客户端地址是否包含在所述存储模块存储的源地址黑名单中,如果判断为是,则指示所述处理模块丢弃所述HTTP请求报文;如果判断为否,则判断存储的关系数据库中是否包含所述HTTP请求报文中的Cookie值、客户端地址、服务器地址组成的表项。
9.如权利要求6-8中任一项所述的Web服务器前置网关,其特征在于,所述处理模块,包括: 第一统计模块,用于统计在预设的第一时间范围内,所述客户端地址作为源地址向所述服务器发送HTTP请求报文的次数; 第一处理子模块,用于当所述第一统计模块统计的次数超过预设的第一阈值,则将所述客户端的地址加入存储的源地址黑名单中,并丢弃所述HTTP请求报文; 第二处理子模块,用于当所述第一统计模块统计的次数未超过所述预设的第一阈值,则修改所述HTTP请求报文中的所述Cookie值,用于指示所述服务器忽略所述HTTP请求报文。
10.如权利要求8所述的Web服务器前置网关,其特征在于,还包括: 第二统计模块,用于实时统计每一客户端地址在源地址黑名单中生效时刻开始,持续第二时间之后,从每一客户端地址对应的客户端接收到的HTTP请求报文数目;并当统计到从一个或多个客户端接收到的HTTP请求报文数目小于预设的第二阈值,则从所述源地址黑名单中删除所述一个或多个客户端的客户端地址。
【文档编号】H04L29/06GK104348816SQ201310340056
【公开日】2015年2月11日 申请日期:2013年8月7日 优先权日:2013年8月7日
【发明者】张 林, 张亮 申请人:华为数字技术(苏州)有限公司