CN103117897A - 一种检测包含Cookie信息的消息的方法及相关装置 - Google Patents

一种检测包含Cookie信息的消息的方法及相关装置 Download PDF

Info

Publication number
CN103117897A
CN103117897A CN2013100301184A CN201310030118A CN103117897A CN 103117897 A CN103117897 A CN 103117897A CN 2013100301184 A CN2013100301184 A CN 2013100301184A CN 201310030118 A CN201310030118 A CN 201310030118A CN 103117897 A CN103117897 A CN 103117897A
Authority
CN
China
Prior art keywords
value
cookie
cookie information
name
obtaining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2013100301184A
Other languages
English (en)
Other versions
CN103117897B (zh
Inventor
顾军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Star Net Ruijie Networks Co Ltd
Original Assignee
Beijing Star Net Ruijie Networks Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Star Net Ruijie Networks Co Ltd filed Critical Beijing Star Net Ruijie Networks Co Ltd
Priority to CN201310030118.4A priority Critical patent/CN103117897B/zh
Publication of CN103117897A publication Critical patent/CN103117897A/zh
Application granted granted Critical
Publication of CN103117897B publication Critical patent/CN103117897B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种检测包含Cookie信息的消息的方法及相关装置,该方法包括:接收服务器发送的包含第一Cookie信息的HTTP响应消息;在第一Cookie信息中获取预先选定的Cookie名对应的值,根据获取的值计算签名值,将添加了附加Cookie名/值对的HTTP响应消息发送给客户端;接收客户端发送的包含第二Cookie信息的HTTP请求消息;在第二Cookie信息中获取预先选定的Cookie名对应的值,根据获取的值重新计算签名值,将重新计算的签名值与第二Cookie信息中包含的附加Cookie名/值对中的值进行比较;根据比较结果进行检测。该方案可以提高消息检测效率,可以保证后续正常识别和操作。

Description

一种检测包含Cookie信息的消息的方法及相关装置
技术领域
本发明涉及网络技术领域,尤指一种检测包含Cookie信息的消息的方法及相关装置。
背景技术
Web应用是指采用浏览器(Browser,B)/服务器(Server,S)架构、通过超文本传输协议(Hyper Text Transfer Protocol,HTTP)或者安全超文本传输协议(Secure Hypertext Transfer Protocol,HTTPS)提供服务的统称。随着互联网的广泛使用,Web应用已经融入到用户的日常生活中,例如:网上购物、网上银行应用、证券股票交易、政府行政审批、高校门户网站、运营商增值服务等等,由于Web应用种类增多,而HTTP安全机制不完善,就会导致Web应用程序中存在漏洞,基于Web的网络攻击也日益增多,如服务器嵌入(ServerSide Include,SSI)、木马防护、目录遍历等,网络应用防火墙(Web ApplicationFirewall,WAF)技术就是在这种情况下产生的。与传统防火墙不同,WAF工作在应用层,基于内置的网络攻击特征对流经的HTTP请求消息和HTTP响应消息进行检测,若检测出消息中存在网络攻击,可以采用拦截、放弃、断开连接等多种处理方式。
HTTP是一种无状态协议,基于Web的应用程序需要借助额外的手段来维护服务器与客户端之间的交互状态,以保证服务器与客户端之间交互的平滑性。例如,在HTTP1.0版本中,一个传输控制协议(Transmission Control Protocol,TCP)连接上仅能进行一次HTTP会话,客户端发送HTTP请求消息,服务器应答一个HTTP响应消息,此次HTTP会话结束,TCP连接拆除;在HTTP1.1中,多个HTTP会话可以复用一个TCP连接,但是每个HTTP会话在客户端发送一个HTTP请求消息并且服务器应答一个HTTP响应消息之后就结束了,连续的HTTP会话之间在协议层次上缺乏内在联系。而一般在基于Web的应用程序中,客户端和服务器之间往往要执行多个HTTP会话才能完成一次应用交互,例如在网上购物过程中,用户往往要一次性挑选多个商品,统一结帐,在这个过程中,基于Web的应用程序必须能够记录用户已经购买的商品和消费金额,也就是要记录当前交互状态。
目前基于Web的应用程序通常采用Cookie、会话(Session)机制来记录当前交互状态。Session机制在服务器记录交互状态,提高数据的可靠性,但服务器要区分多个同时进行的Session,仍然需要客户端维护一个Session标识(Identification,ID),而Session ID往往记录在Cookie信息中,因而本质上可以归类为Cookie机制。
采用Cookie信息记录当前交互状态,可能会发生篡改Cookie信息这类网络攻击。篡改Cookie信息是指客户端接收到服务器发送的携带Cookie信息的HTTP响应消息后,再次向服务器发送携带Cookie信息的HTTP请求消息前,对Cookie信息进行了篡改。例如,在网上购物应用中,Cookie信息中可能记录了用户已经购买的商品总额,对Cookie信息进行篡改可以实现对商家的欺诈。客户端对Cookie信息的篡改并不能在HTTP请求消息或HTTP响应消息中留下明显特征,而传统意义上的WAF只能对HTTP请求消息和HTTP响应消息进行网络攻击特征检测,不能检测此类网络攻击。因此,需要专门对Cookie信息篡改这类网络攻击进行检测。
一般,在HTTP响应消息和HTTP请求消息中都包含Cookie信息,分别存在于Set-Cookie字段和Cookie字段中,Cookie信息会包含多个Cookie名/值对,而这些Cookie名/值对在每个HTTP请求消息和HTTP响应消息中的顺序是不确定的,因此,需要对每个Cookie名/值对进行单独保护,假设,HTTP响应消息的Set-Cookie字段中包括三个Cookie名/值对:phpsessionid=id-xxxx、phpbot=bot-yyyy和other-name=n-zzzz,那么,需要对这三个Cookie名/值对分别进行保护。
具体过程为,当WAF接收到服务器发送的包含Cookie信息的HTTP响应消息时,对于该HTTP响应消息Cookie信息中的每个原始Cookie名/值对,都需要计算签名值,用计算出来的签名值替换原始Cookie名/值对中的值,形成新的Cookie名/值对后发送给客户端;当WAF接收到客户端发送的含有Cookie信息的HTTP请求消息时,根据Cookie信息中Cookie名/值对的值计算出原始Cookie名/值对的值,根据计算出的原始Cookie名/值对中的值再次计算签名值,并比较再次计算出的签名值与接收到的该客户端发送的Cookie名/值对中的值是否相同,若不同,则确定客户端发送的HTTP请求消息中的Cookie信息已经篡改,该HTTP请求消息为非法请求消息,并对该HTTP请求消息进行相应处理。
上述检测包含Cookie信息的消息的方法,由于WAF需要对HTTP响应消息中的每个原始Cookie名/值对重新计算签名值,并且对HTTP请求消息中的每个Cookie名/值对进行校验,消息检测效率低;由于原始Cookie名/值对中的值已经被改变,新的Cookie名/值对有可能导致错误的操作或者无法识别,因而导致Cookie信息在使用上有一定的风险。
发明内容
本发明实施例提供一种检测包含Cookie信息的消息的方法及相关装置,用以解决现有的包含Cookie信息的消息检测方法中存在的消息检测效率低以及Cookie信息使用上存在风险的问题。
一种检测包含Cookie信息的消息的方法,包括:
接收服务器发送给客户端的包含第一Cookie信息的超文本传输协议HTTP响应消息,所述第一Cookie信息包含至少一个Cookie名/值对;
在所述第一Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,将签名和计算出的签名值作为附加Cookie名/值对添加在所述第一Cookie信息后,将添加了所述附加Cookie名/值对的HTTP响应消息发送给所述客户端;
接收所述客户端发送给所述服务器的包含第二Cookie信息的HTTP请求消息,所述第二Cookie信息中包含所述附加Cookie名/值对;
在所述第二Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,将重新计算的签名值与所述第二Cookie信息中包含的所述附加Cookie名/值对中的值进行比较;
根据比较结果,检测所述HTTP请求消息是否为合法消息。
一种检测包含Cookie信息的消息的装置,包括:
第一接收单元,用于接收服务器发送给客户端的包含第一Cookie信息的超文本传输协议HTTP响应消息,所述第一Cookie信息包含至少一个Cookie名/值对;
第一计算单元,用于在所述第一Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,将签名和计算出的签名值作为附加Cookie名/值对添加在所述第一Cookie信息后,将添加了所述附加Cookie名/值对的HTTP响应消息发送给所述客户端;
第二接收单元,用于接收所述客户端发送给所述服务器的包含第二Cookie信息的HTTP请求消息,所述第二Cookie信息中包含所述附加Cookie名/值对;
第二计算单元,用于在所述第二Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,将重新计算的签名值与所述第二Cookie信息中包含的所述附加Cookie名/值对中的值进行比较;根据比较结果,检测所述HTTP请求消息是否为合法消息。
一种网络设备,包括上述检测包含Cookie信息的消息的装置。
本发明有益效果如下:
本发明实施例提供的检测包含Cookie信息的消息的方法及装置,通过接收服务器发送给客户端的包含第一Cookie信息的超文本传输协议HTTP响应消息,所述第一Cookie信息包含至少一个Cookie名/值对;在所述第一Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,将签名和计算出的签名值作为附加Cookie名/值对添加在所述第一Cookie信息后,将添加了所述附加Cookie名/值对的HTTP响应消息发送给所述客户端;接收所述客户端发送给所述服务器的包含第二Cookie信息的HTTP请求消息,所述第二Cookie信息中包含所述附加Cookie名/值对;在所述第二Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,将重新计算的签名值与所述第二Cookie信息中包含的所述附加Cookie名/值对中的值进行比较;根据比较结果,检测所述HTTP请求消息是否为合法消息。该方案是对Cookie信息中包含预先选定的至少一个Cookie名的Cookie名/值对统一进行签名,不是对每个Cookie名/值对进行单独签名,在检测消息时,也是对Cookie信息中包含预先选定的至少一个Cookie名的Cookie名/值对进行一次检验,这样就可以提高消息检测效率;并且,对Cookie信息中包含预先选定的至少一个Cookie名的Cookie名/值对进行签名时,不改变原有的Cookie信息,这样就可以保证后续正常识别和操作。
附图说明
图1为本发明实施例中检测包含Cookie信息的消息的方法的流程图;
图2为本发明实施例中生成辅助字符串的流程图;
图3为本发明实施例中检测包含Cookie信息的消息的装置的结构示意图;
图4为本发明实施例中优选的检测包含Cookie信息的消息的装置的结构示意图。
具体实施方式
针对现有的包含Cookie信息的消息检测方法中存在的消息检测效率低以及Cookie信息使用上存在风险的问题,本发明实施例提供一种检测包含Cookie信息的消息的方法,该方法的流程如图1所示,执行步骤如下:
S10:接收服务器发送给客户端的包含第一Cookie信息的HTTP响应消息,第一Cookie信息包含至少一个Cookie名/值对。
当用户需要访问某个域名www.xxx.com时,需要通过客户端向服务器发送HTTP请求消息,这时的HTTP请求消息中不携带Cookie信息,服务器接收到该HTTP请求消息时,会作出相应处理,生成需要发送给客户端的HTTP响应消息,该HTTP响应消息中包含第一Cookie信息,第一Cookie信息中包含至少一个Cookie名/值对,例如,第一Cookie信息可以为set-Cookie2:phpsessionid=id-xxxx;phpbot=bot-yyyy;other-name=n-zzzz。该第一Cookie信息中包含三个Cookie名/值对,即:hpsessionid=id-xxxx、phpbot=bot-yyyy和other-name=n-zzzz。
S11:在第一Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,将签名和计算出的签名值作为附加Cookie名/值对添加在第一Cookie信息后,将添加了附加Cookie名/值对的HTTP响应消息发送给客户端。
第一Cookie信息中可能包含多个Cookie名/值对,可以预先选定部分Cookie名,当然也可以预先选定所有Cookie名,然后根据这些Cookie名对应的值计算签名值,然后将签名和计算出来的签名值作为附加Cookie名/值对添加在第一Cookie信息后,然后将添加了附加Cookie名/值对的HTTP相应消息发送给客户端。
可以将预先选定的Cookie名添加在Cookie名列表中,具体可以使用命令cookie-name string,该命令用于将预先选定的Cookie名加入Cookie名列表。例如,若要根据phpsessionid和phpbot这两个Cookie名计算签名值,就可以通过命令将其加入Cookie名列表,具体用户命令如下:cookie-namephpsessionid、cookie-name phpbot,这样就只根据部分Cookie名对应的值计算签名值,没有根据全部Cookie名对应的值计算签名值。
具体签名的过程为如下,获取phpsessionid和phpbot对应的值id-xxxx|bot-yyyy,然后根据id-xxxx|bot-yyyy采用消息摘要算法第五版(MessageDigest Algorithm,MD5)计算签名值,将签名和计算出的签名值作为附加Cookie名/值对,签名可以为cookie-signature,即Cookie名,签名值为ibxy,即Cookie名对应的值,这样附加Cookie名/值对为cookie-signature=ibxy,然后添加在第一Cookie信息后,即可以得到Set-Cookie2:phpsessionid=id-xxxx;phpbot=bot-yyyy;other-name=n-zzzz;cookie-signature=ibxy。
S12:接收客户端发送给服务器的包含第二Cookie信息的HTTP请求消息,第二Cookie信息中包含附加Cookie名/值对。
当客户端接收到包含附加Cookie名/值对的HTTP响应消息后,客户端再次向服务器发送携带第二Cookie信息的HTTP请求消息,第二Cookie信息中包含附加Cookie名/值对,如果在客户端不存在Cookie信息篡改这类网络攻击,那么第二Cookie信息就是第一Cookie信息和附加Cookie名/值对,如果在客户端存在Cookie信息篡改这类网络攻击,那么这时的第二Cookie信息不是第一Cookie信息和附加Cookie名/值对了,但是其中附加Cookie名/值对是不变的。
S13:在第二Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,将重新计算的签名值与第二Cookie信息中包含的附加Cookie名/值对中的值进行比较。
这里预先选定的至少一个Cookie名与S11中预先选定的至少一个Cookie名是相同的,如果没有发生Cookie信息篡改,重新计算出来的签名值与附加Cookie名/值对中的值是相同的,因为依据的Cookie名对应的值是一样的,如果发生了Cookie信息篡改,重新计算出来的签名值与附加Cookie名/值对中的值就不同,因为依据的Cookie名对应的值不同。
S14:根据比较结果,检测HTTP请求消息是否为合法消息。
该方案是对Cookie信息中包含预先选定的至少一个Cookie名的Cookie名/值对统一进行签名,不是对每个Cookie名/值对进行单独签名,在检测消息时,也是对Cookie信息中包含预先选定的至少一个Cookie名的Cookie名/值对进行一次检验,这样就可以提高消息检测效率;并且,对Cookie信息中包含预先选定的至少一个Cookie名的Cookie名/值对进行签名时,不改变原有的Cookie信息,这样就可以保证后续正常识别和操作。
较佳的,上述检测包含Cookie信息的消息的方法,还包括:以设定周期生成设定长度的辅助字符串。
上述S11中的在第一Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,具体包括:在第一Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值和生成的辅助字符串计算签名值。
上述S13中的在第二Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,具体包括:在第二Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值和生成的辅助字符串重新计算签名值。
由于需要将签名值下发给客户端,因此攻击者可能通过爆破措施对计算签名值的算法进行暴力猜解,为了避免这种状况的发生,增强安全性,在计算签名值时,可以在预先选定Cookie名的基础上,增加一个辅助字符串M,增加爆破难度,只要M足够长,攻击者就无法通过爆破方式猜解得到计算签名值的算法和M。相应地,在重新计算签名值时,也需要在预先选定Cookie名的基础上,考虑M。设定周期可以依据实际需要进行设定,例如1个月、2个月等等。
具体的,如图2所示,上述以设定周期生成设定长度的辅助字符串,具体包括:
S20:以辅助字符串中所有字符的取值范围形成数组。
S21:选取辅助字符串的第一位。
S22:生成一个随机数,将随机数与数组的长度进行取模运算。
S23:在数组中获取取模运算的结果对应的取值。
S24:判断是否选取了辅助字符串的最后一位,若是,执行S26;否则,执行S25。
S25:选取辅助字符串的下一位后,执行S22。
S26:将得到的所有取值按照获取的先后顺序排列,得到辅助字符串。
辅助字符串M的生成方式很多,下面以一示例来说明具体过程:
出于安全考虑,该辅助字符串M长度至少为128个字符,可以由大小英文字母、阿拉伯数字等等组成,当然还有很多其他方式,例如可以考虑希腊字母、拉丁字母等等。
将辅助字符串中每个字符的取值范围形成一个数组,也就是形成{A……Z,a……z,0……9}的数组。
针对辅助字符串的第一位,首先生成一个随机数R,然后将R与数组的长度m进行取模运算,也就是进行mod运算,以mod运算结果的值为数组下标取出一个字符,该字符就是辅助字符串第一位上的取值。
类似地,经过至少128次取值后,就可以得到一个辅助字符串M。
具体的,上述S11中的在第一Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,具体包括:在第一Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值、辅助字符串和客户端的互联网协议(Internet Protocol,IP)地址计算签名值。
上述S13中的在第二Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,具体包括:在第二Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值、辅助字符串和客户端的IP地址,重新计算签名值。
一种具体的方式,在计算签名值时,可以在预先选定Cookie名和M的基础上,考虑客户端的IP地址,相应地,在重新计算签名值,可以在预先选定Cookie名和M的基础上,考虑客户端的IP地址,这样可以有效防止不同客户端访问服务器带来的安全隐患。
具体的,上述S11中的在第一Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,具体包括:在第一Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值和客户端的IP地址计算签名值。
上述S13中的在第二Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,具体包括:在第二Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值和客户端的IP地址,重新计算签名值。
一种具体的方式,在计算签名值时,可以在预先选定Cookie名的基础上,考虑客户端的IP地址,相应地,在重新计算签名值,可以在预先选定Cookie名的基础上,考虑客户端的IP地址,这样可以有效防止不同客户端访问服务器带来的安全隐患。
较佳的,上述S14中的根据比较结果,检测HTTP请求消息是否为合法消息,具体包括:若比较结果为相同,则确定第二Cookie信息未被篡改,HTTP请求消息为合法消息;若比较结果为不同,则确定第二Cookie信息已被篡改,HTTP请求消息为非法消息。
上述S14中的在检测HTTP请求消息是否为合法消息后,还包括:当HTTP请求消息为合法消息时,删除第二Cookie信息中的附加Cookie名/值对,将删除附加Cookie名/值对的HTTP请求消息发送给服务器;当HTTP请求消息为非法消息时,删除第二Cookie信息,将删除第二Cookie信息的HTTP请求消息发送给服务器。
删除HTTP请求消息中的第二Cookie信息后,相当于该客户端是第一次向该服务器发送HTTP请求消息,服务器就可以重新给该客户端分配Cookie信息,从而有效防护Cookie信息篡改这类网络攻击。
基于同一发明构思,本发明实施例提供一种检测包含Cookie信息的消息的装置,该装置可以设置在网络设备中,网络设备可以WAF设备、交换机等等,该装置的结构如图3所示,包括:
第一接收单元30,用于接收服务器发送给客户端的包含第一Cookie信息的HTTP响应消息,第一Cookie信息包含至少一个Cookie名/值对。
第一计算单元31,用于在第一Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,将签名和计算出的签名值作为附加Cookie名/值对添加在第一Cookie信息后,将添加了附加Cookie名/值对的HTTP响应消息发送给客户端。
第二接收单元32,用于接收客户端发送给服务器的包含第二Cookie信息的HTTP请求消息,第二Cookie信息中包含附加Cookie名/值对。
第二计算单元33,用于在第二Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,将重新计算的签名值与第二Cookie信息中包含的附加Cookie名/值对中的值进行比较;根据比较结果,检测HTTP请求消息是否为合法消息。
较佳的,如图4所示,检测包含Cookie信息的消息的装置还包括生成单元34,用于以设定周期生成设定长度的辅助字符串。
第一计算单元31,具体用于在第一Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值和生成的辅助字符串计算签名值。
第二计算单元33,具体用于在第二Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值和生成的辅助字符串重新计算签名值。
具体的,上述生成单元34,具体用于:A、以辅助字符串中所有字符的取值范围形成数组;B、选取辅助字符串的第一位;C、生成一个随机数,将随机数与数组的长度进行取模运算;D、在数组中获取取模运算的结果对应的取值;E、判断是否选取了辅助字符串的最后一位,若是,执行F;否则,选取辅助字符串的下一位后,执行C;F、将得到的所有取值按照获取的先后顺序排列,得到辅助字符串。
较佳的,上述第一计算单元31,具体用于在第一Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值、辅助字符串和客户端的互联网协议IP地址计算签名值。
上述第二计算单元33,具体用于在接收到客户端发送给服务器的包含第二Cookie信息的HTTP请求消息后,在第二Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值、辅助字符串和客户端的IP地址,重新计算签名值。
具体的,上述述第一计算单元31,具体用于:在第一Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值和客户端的IP地址计算签名值.
上述第二计算单元33,具体用于:在第二Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值和客户端的IP地址,重新计算签名值。
较佳的,上述第二计算单元33,用于根据比较结果,检测HTTP请求消息是否为合法消息,具体用于:若比较结果为相同,则确定第二Cookie信息未被篡改,HTTP请求消息为合法消息;若比较结果为不同,则确定第二Cookie信息已被篡改,HTTP请求消息为非法消息。
上述第二计算单元33,还用于在检测HTTP请求消息是否为合法消息后,当HTTP请求消息为合法消息时,删除第二Cookie信息中的附加Cookie名/值对,将删除附加Cookie名/值对的HTTP请求消息发送给服务器;当HTTP请求消息为非法消息时,删除第二Cookie信息,将删除第二Cookie信息的HTTP请求消息发送给服务器。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (13)

1.一种检测包含Cookie信息的消息的方法,其特征在于,包括:
接收服务器发送给客户端的包含第一Cookie信息的超文本传输协议HTTP响应消息,所述第一Cookie信息包含至少一个Cookie名/值对;
在所述第一Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,将签名和计算出的签名值作为附加Cookie名/值对添加在所述第一Cookie信息后,将添加了所述附加Cookie名/值对的HTTP响应消息发送给所述客户端;
接收所述客户端发送给所述服务器的包含第二Cookie信息的HTTP请求消息,所述第二Cookie信息中包含所述附加Cookie名/值对;
在所述第二Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,将重新计算的签名值与所述第二Cookie信息中包含的所述附加Cookie名/值对中的值进行比较;
根据比较结果,检测所述HTTP请求消息是否为合法消息。
2.如权利要求1所述的方法,其特征在于,还包括:
以设定周期生成设定长度的辅助字符串;
在所述第一Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,具体包括:在所述第一Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值和生成的辅助字符串计算签名值;
在所述第二Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,具体包括:在所述第二Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值和生成的辅助字符串重新计算签名值。
3.如权利要求2所述的方法,其特征在于,以设定周期生成设定长度的辅助字符串,具体包括:
A、以所述辅助字符串中所有字符的取值范围形成数组;
B、选取所述辅助字符串的第一位;
C、生成一个随机数,将所述随机数与所述数组的长度进行取模运算;
D、在所述数组中获取取模运算的结果对应的取值;
E、判断是否选取了所述辅助字符串的最后一位,若是,执行F;否则,选取所述辅助字符串的下一位后,执行C;
F、将得到的所有取值按照获取的先后顺序排列,得到所述辅助字符串。
4.如权利要求2所述的方法,其特征在于,在所述第一Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,具体包括:在所述第一Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值、所述辅助字符串和所述客户端的互联网协议IP地址计算签名值;
在所述第二Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,具体包括:在所述第二Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值、所述辅助字符串和所述客户端的IP地址,重新计算签名值。
5.如权利要求1所述的方法,其特征在于,在所述第一Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,具体包括:在所述第一Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值和所述客户端的IP地址计算签名值;
在所述第二Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,具体包括:在所述第二Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值和所述客户端的IP地址,重新计算签名值。
6.如权利要求1至5任一所述的方法,其特征在于,根据比较结果,检测所述HTTP请求消息是否为合法消息,具体包括:
若比较结果为相同,则确定所述第二Cookie信息未被篡改,所述HTTP请求消息为合法消息;
若比较结果为不同,则确定所述第二Cookie信息已被篡改,所述HTTP请求消息为非法消息;
在检测所述HTTP请求消息是否为合法消息后,还包括:
当所述HTTP请求消息为合法消息时,删除所述第二Cookie信息中的所述附加Cookie名/值对,将删除所述附加Cookie名/值对的HTTP请求消息发送给所述服务器;
当所述HTTP请求消息为非法消息时,删除所述第二Cookie信息,将删除所述第二Cookie信息的HTTP请求消息发送给所述服务器。
7.一种检测包含Cookie信息的消息的装置,其特征在于,包括:
第一接收单元,用于接收服务器发送给客户端的包含第一Cookie信息的超文本传输协议HTTP响应消息,所述第一Cookie信息包含至少一个Cookie名/值对;
第一计算单元,用于在所述第一Cookie信息中获取预先选定的至少一个Cookie名对应的值,根据获取的值计算签名值,将签名和计算出的签名值作为附加Cookie名/值对添加在所述第一Cookie信息后,将添加了所述附加Cookie名/值对的HTTP响应消息发送给所述客户端;
第二接收单元,用于接收所述客户端发送给所述服务器的包含第二Cookie信息的HTTP请求消息,所述第二Cookie信息中包含所述附加Cookie名/值对;
第二计算单元,用于在所述第二Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值重新计算签名值,将重新计算的签名值与所述第二Cookie信息中包含的所述附加Cookie名/值对中的值进行比较;根据比较结果,检测所述HTTP请求消息是否为合法消息。
8.如权利要求7所述的装置,其特征在于,还包括生成单元,用于以设定周期生成设定长度的辅助字符串;
所述第一计算单元,具体用于在所述第一Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值和生成的辅助字符串计算签名值;
所述第二计算单元,具体用于在所述第二Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值和生成的辅助字符串重新计算签名值。
9.如权利要求8所述的装置,其特征在于,所述生成单元,具体用于:
A、以所述辅助字符串中所有字符的取值范围形成数组;
B、选取所述辅助字符串的第一位;
C、生成一个随机数,将所述随机数与所述数组的长度进行取模运算;
D、在所述数组中获取取模运算的结果对应的取值;
E、判断是否选取了所述辅助字符串的最后一位,若是,执行F;否则,选取所述辅助字符串的下一位后,执行C;
F、将得到的所有取值按照获取的先后顺序排列,得到所述辅助字符串。
10.如权利要求8所述的装置,其特征在于,所述第一计算单元,具体用于在所述第一Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值、所述辅助字符串和所述客户端的互联网协议IP地址计算签名值;
所述第二计算单元,具体用于在所述第二Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值、所述辅助字符串和所述客户端的IP地址,重新计算签名值。
11.如权利要求8所述的装置,其特征在于,所述第一计算单元,具体用于:在所述第一Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值和所述客户端的IP地址计算签名值;
所述第二计算单元,具体用于:在所述第二Cookie信息中获取所述预先选定的至少一个Cookie名对应的值,根据获取的值和所述客户端的IP地址,重新计算签名值。
12.如权利要求7-11任一所述的装置,其特征在于,所述第二计算单元,用于根据比较结果,检测所述HTTP请求消息是否为合法消息,具体用于:
若比较结果为相同,则确定所述第二Cookie信息未被篡改,所述HTTP请求消息为合法消息;
若比较结果为不同,则确定所述第二Cookie信息已被篡改,所述HTTP请求消息为非法消息;
所述第二计算单元,还用于在检测所述HTTP请求消息是否为合法消息后,当所述HTTP请求消息为合法消息时,删除所述第二Cookie信息中的所述附加Cookie名/值对,将删除所述附加Cookie名/值对的HTTP请求消息发送给所述服务器;当所述HTTP请求消息为非法消息时,删除所述第二Cookie信息,将删除所述第二Cookie信息的HTTP请求消息发送给所述服务器。
13.一种网络设备,其特征在于,包括如权利要求7-12任一所述的检测包含Cookie信息的消息的装置。
CN201310030118.4A 2013-01-25 2013-01-25 一种检测包含Cookie信息的消息的方法及相关装置 Active CN103117897B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310030118.4A CN103117897B (zh) 2013-01-25 2013-01-25 一种检测包含Cookie信息的消息的方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310030118.4A CN103117897B (zh) 2013-01-25 2013-01-25 一种检测包含Cookie信息的消息的方法及相关装置

Publications (2)

Publication Number Publication Date
CN103117897A true CN103117897A (zh) 2013-05-22
CN103117897B CN103117897B (zh) 2015-11-25

Family

ID=48416175

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310030118.4A Active CN103117897B (zh) 2013-01-25 2013-01-25 一种检测包含Cookie信息的消息的方法及相关装置

Country Status (1)

Country Link
CN (1) CN103117897B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103971059A (zh) * 2014-05-09 2014-08-06 中国科学院计算技术研究所 一种Cookie本地存储与使用方法
CN104079629A (zh) * 2014-06-06 2014-10-01 汉柏科技有限公司 一种基于cookie信息的HTTP请求报文的监控方法及网关
CN104243489A (zh) * 2014-09-30 2014-12-24 珠海市君天电子科技有限公司 一种提示用户Cookies安全性的方法及装置
CN104283903A (zh) * 2013-07-01 2015-01-14 深圳市腾讯计算机系统有限公司 文件的下载方法及装置
WO2015096487A1 (zh) * 2013-12-25 2015-07-02 贝壳网际(北京)安全技术有限公司 cookie处理方法、装置及浏览器、客户端
CN106063222A (zh) * 2014-03-07 2016-10-26 三菱电机株式会社 用于对传送http业务的tcp连接进行分类的方法和装置
CN106549760A (zh) * 2015-09-16 2017-03-29 阿里巴巴集团控股有限公司 基于cookie的身份验证方法和装置
CN107819639A (zh) * 2016-09-14 2018-03-20 西门子公司 一种测试方法和装置
CN108712430A (zh) * 2018-05-24 2018-10-26 网宿科技股份有限公司 一种发送表单请求的方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060075330A1 (en) * 2004-09-28 2006-04-06 International Business Machines Corporation Method, system, and computer program product for sharing information between hypertext markup language (HTML) forms using a cookie
US20100107234A1 (en) * 2008-10-28 2010-04-29 Check Point Software Technologies, Ltd. Methods for protecting against cookie-poisoning attacks in networked-communication applications
CN101848085A (zh) * 2009-03-25 2010-09-29 华为技术有限公司 通信系统、验证设备、报文身份的验证及签名方法
CN102143131A (zh) * 2010-08-02 2011-08-03 华为技术有限公司 用户注销方法及认证服务器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060075330A1 (en) * 2004-09-28 2006-04-06 International Business Machines Corporation Method, system, and computer program product for sharing information between hypertext markup language (HTML) forms using a cookie
US20100107234A1 (en) * 2008-10-28 2010-04-29 Check Point Software Technologies, Ltd. Methods for protecting against cookie-poisoning attacks in networked-communication applications
CN101848085A (zh) * 2009-03-25 2010-09-29 华为技术有限公司 通信系统、验证设备、报文身份的验证及签名方法
CN102143131A (zh) * 2010-08-02 2011-08-03 华为技术有限公司 用户注销方法及认证服务器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李莉等: "一种基于Web应用防火墙的主动安全加固方案", 《计算机工程与应用》, vol. 47, no. 25, 31 December 2011 (2011-12-31), pages 104 - 106 *
黄华健: "SSL VPN中安全身份认证的研究", 《中国优秀硕士学位论文全文数据库(INFORMATION SCIENCE AND TECHNOLOGY)》, no. 7, 31 December 2009 (2009-12-31), pages 23 - 35 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104283903A (zh) * 2013-07-01 2015-01-14 深圳市腾讯计算机系统有限公司 文件的下载方法及装置
WO2015096487A1 (zh) * 2013-12-25 2015-07-02 贝壳网际(北京)安全技术有限公司 cookie处理方法、装置及浏览器、客户端
CN106063222A (zh) * 2014-03-07 2016-10-26 三菱电机株式会社 用于对传送http业务的tcp连接进行分类的方法和装置
CN106063222B (zh) * 2014-03-07 2019-05-07 三菱电机株式会社 用于对传送http业务的tcp连接进行分类的方法和装置
CN103971059A (zh) * 2014-05-09 2014-08-06 中国科学院计算技术研究所 一种Cookie本地存储与使用方法
CN103971059B (zh) * 2014-05-09 2017-01-25 中国科学院计算技术研究所 一种Cookie本地存储与使用方法
CN104079629A (zh) * 2014-06-06 2014-10-01 汉柏科技有限公司 一种基于cookie信息的HTTP请求报文的监控方法及网关
CN104243489A (zh) * 2014-09-30 2014-12-24 珠海市君天电子科技有限公司 一种提示用户Cookies安全性的方法及装置
CN104243489B (zh) * 2014-09-30 2017-09-19 珠海市君天电子科技有限公司 一种提示用户Cookies安全性的方法及装置
CN106549760A (zh) * 2015-09-16 2017-03-29 阿里巴巴集团控股有限公司 基于cookie的身份验证方法和装置
CN107819639A (zh) * 2016-09-14 2018-03-20 西门子公司 一种测试方法和装置
CN108712430A (zh) * 2018-05-24 2018-10-26 网宿科技股份有限公司 一种发送表单请求的方法和装置

Also Published As

Publication number Publication date
CN103117897B (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
CN103117897A (zh) 一种检测包含Cookie信息的消息的方法及相关装置
US10516662B2 (en) System and method for authenticating the legitimacy of a request for a resource by a user
US7925883B2 (en) Attack resistant phishing detection
CN104767613B (zh) 签名验证方法、装置及系统
CA2966408C (en) A system and method for network intrusion detection of covert channels based on off-line network traffic
US8001597B2 (en) Comprehensive online fraud detection system and method
Bin et al. A DNS based anti-phishing approach
CN102571846A (zh) 一种转发http请求的方法及装置
US8966621B1 (en) Out-of-band authentication of e-mail messages
CN107347076B (zh) Ssrf漏洞的检测方法及装置
CN114616795B (zh) 用于防止重试或重放攻击的安全机制
CN105592044B (zh) 报文攻击检测方法以及装置
WO2016029795A1 (zh) 支付安全性的检测方法和装置
Dong et al. Defending the weakest link: phishing websites detection by analysing user behaviours
CN110198297A (zh) 流量数据监控方法、装置、电子设备及计算机可读介质
Park et al. An enhanced smartphone security model based on information security management system (ISMS)
CN107919970A (zh) 一种安全运维服务云平台的日志管理实现方法及系统
CN109784918A (zh) 基于区块链的信息监督方法、装置、设备和存储介质
Hajiali et al. Preventing phishing attacks using text and image watermarking
JP6291441B2 (ja) ウェブシステム、ウェブクライアント装置および改ざん検査装置
CN108259416A (zh) 检测恶意网页的方法及相关设备
CN107086918B (zh) 一种客户端验证方法和服务器
CN105227519B (zh) 一种安全访问网页的方法、客户端和服务器
CN113283885A (zh) 一种电子券领取方法、装置、设备和存储介质
JP6688782B2 (ja) ネットワーク通信方法及びネットワーク通信システム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant