专利名称:用于处理网页数据的方法和装置的制作方法
技术领域:
本发明涉及一种用于处理网页数据的方法和装置。
背景技术:
现在,人们在上网时经常使用诸如google、yahoo和百度等这样的搜索引擎来从 海量的网上信息中检索感兴趣的信息。搜索引擎通常包括有网站爬虫(website crawler)、搜索数据库和检索工具,其 中,网站爬虫用于周期地从各个网站中获取各个网站的网页数据,搜索数据库用于存储网 站爬虫所获取的各个网站的网页数据,以及,检索工具用于根据人们的请求从搜索数据库 中检索出包含人们感兴趣的信息的网页数据。利用搜索引擎,当人们想在网上检索感兴趣 的信息时,人们可以向搜索引擎的检索工具输入与该感兴趣的信息相关的关键字,然后搜 索引擎的检索工具从搜索引擎的搜索数据库中检索出包含有与该输入的关键字相关的信 息的网页数据并呈现给人们。由于搜索引擎的搜索数据库所存储的网页数据来自各个网站,而且这些网页数据 的其中一些可能会包含有透露网站信息(例如,网站使用的操作系统类型和版本,网站使 用的数据库类型和版本,网站运行的应用程序的信息等)的字符,所以,黑客可以利用搜索 引擎检索出包含有透露网站信息的字符的网页数据并通过分析检索的网页数据所包含的 这些透露网站信息的字符来查找到具有安全缺陷或隐患的网站,从而利用这些网站的安全 缺陷或隐患来对这些网站实施未授权操作,例如从网站中盗取用户信息,向网站安装恶意 代码等。这就是近年出现的一种利用搜索引擎对网站实施未授权操作的黑客技术,这种黑 客技术也被称为谷歌黑客技术(google hacking) 0例如,在2004年,黑客利用论坛应用程 序phpBB存在的安全缺陷,开发了一种蠕虫Santy来恶意攻击运行有论坛应用程序phpBB 的网站,导致大约15000个网站感染了蠕虫Santy。首先,蠕虫Santy通过谷歌搜索引擎 (google)检索出包含有字符“phpBB”的网页数据并根据所检索的网页数据查找到运行有 论坛应用程序PhpBB的网站的网络地址,然后,蠕虫Santy根据所查找到的网络地址侵入这 些网站并利用这些网站所运行的论坛应用程序PhpBB的安全缺陷把自己安装到这些网站 中。又例如,在2008年,发生了 SQL注入式(SQL injection)攻击并导致大约14000个网 站感染了病毒。首先,SQL注入式攻击通过谷歌搜索引擎检索出包含字符“ASP”和“id =” 的网页数据,基于所检索的网页数据确定出运行ASP脚本并在其统一资源定位符(URL)中 具有“id =”的网站,然后SQL注入式攻击从这些确定的网站中找出具有SQL注入式攻击弱 点的网站,最后SQL注入式攻击向这些具有SQL注入式攻击弱点的网站注入恶意代码,该恶 意代码将会试图向访问网站的用户计算机安装名为“Trojan”的病毒。为了阻止黑客利用谷歌黑客技术来对网站实施未授权操作,人们提出了各种的解 决方法。—种方法是在网站的根目录下创建一个用于指定网页爬虫应该遵守的规则的文件robots, txt,网站管理员可以利用robots, txt来指定那些不允许网页爬虫获取的包含 有网站信息的网页数据文件和/或包含这样的文件的文件目录。然而,robots, txt仅支持 阻止对整个文件或文件目录进行提取,即如果robots, txt指定了一个网页数据文件或包 含网页数据文件的文件目录不允许网页爬虫提取,则该指定的网页数据文件或包含网页数 据文件的该指定的文件目录所包含的所有网页数据文件不会被网页爬虫提取。在这种情况 下,如果robots, txt指定了网站的首页的网页数据文件不允许网页爬虫提取走,则人们就 不可能通过搜索引擎查找到网站的首页,这是网站管理员所不能接受的。另一种方法是人们试图使用广泛部署以用来减少对网站的攻击的网页应用防火 墙(WAF =Web Application Firewall)。然而,网页应用防火墙仅用于过滤访问者发送给网 站的请求以检查该请求中是否包含有恶意攻击代码,所以现有的网页应用防火墙不能防止 黑客利用谷歌黑客技术对网站实施未授权操作。还有一些方法是通过修改网站源代码来防止黑客利用谷歌黑客技术来对网站实 施未授权操作。然而,这样的方法并不适合所有的情形,例如,如果运行在网站上的应用程 序没有源代码,则没有办法采用这种通过修改源代码的方式来防止黑客利用谷歌黑客技术 来对网站实施未授权操作。
发明内容
考虑到现有技术的上述缺陷,本发明提供一种用于处理网页数据的方法和装置, 其屏蔽从网站发送给搜索引擎的网页数据中所包含的可能会透露网站信息的字符,从而能 够防止黑客利用谷歌黑客技术来对网站实施未授权操作。按照本发明的一种用于处理网页数据的方法,包括检查网站欲发送给搜索引擎 的响应消息所包括的网页数据是否包含有特定字符;以及,当检查结果为肯定时,屏蔽所述 网页数据包含的所述特定字符。按照本发明的一种用于处理网页数据的装置,包括检查模块,用于检查网站欲发 送给搜索引擎的响应消息所包括的网页数据是否包含有特定字符;以及,屏蔽模块,用于当 检查结果为肯定时,屏蔽所述网页数据包含的所述特定字符。按照本发明的一种网页应用防火墙,包括拦截模块,用于拦截网站欲发送给搜索 引擎的响应消息;检查模块,用于检查所述拦截的响应消息所包括的网页数据是否包含有 特定字符;屏蔽模块,用于当检查结果为肯定时,屏蔽所述拦截的响应消息所包括的所述网 页数据包含的所述特定字符;以及,发送模块,用于向所述搜索引擎发送所述拦截的已屏蔽 所述特定字符的响应消息。
本发明的其它特定、特征和优点通过以下结合附图的详细描述将变得更加显而易 见,其中图1示出了按照本发明一个实施例的实施情景示意图;图2是示出按照本发明一个实施例的HTTP请求消息的示例示意图;图3A和3B是示出按照本发明一个实施例的由网页应用防火墙执行的用于处理网 页数据的方法的流程5
图4A示出了按照本发明一个实施例的具有网页数据的加扰后的相对地址和加扰 标识符的HTTP请求消息的示意图;图4B示出了按照本发明一个实施例的具有网页数据的没有被加扰的相对地址的 HTTP请求消息的示意图;图5A示出了按照本发明一个实施例的网页数据所包含的具有没有被加扰的相对 地址的统一资源定位符的示意图;以及图5B示出了按照本发明一个实施例的网页数据所包含的具有加扰后的相对地址 和加扰标识符的统一资源定位符的示意图。
具体实施例方式下面,将结合附图详细描述本发明的各个实施例。图1示出了按照本发明一个实施例的实施情景示意图。图1所示的实施情景包括 有网站10、用户20、搜索引擎30和网页应用防火墙(WAF)40。其中,网站10包括有网站服务器12,其存储网站10的各个网页数据。用户20可以是除了搜索引擎30之外的人和/或程序。用户20可以访问网站10 以请求网站10的网页数据,或者通过搜索引擎30检索包含感兴趣的信息的网页数据。当 用户20访问网站10时,用户20首先作为发起方与网站10的网站服务器12建立通信连 接,然后,用户20经由该建立的通信连接向网站服务器12发送HTTP请求消息以请求网站 10的网页数据,以及网站服务器12响应该HTTP请求消息经由该建立的通信连接向用户20 返回包含所请求的网页数据的HTTP响应消息。其中,该建立的通信连接包括有作为发起方 的用户20的和作为目的方的网站服务器12的地址和端口号。搜索引擎30包括网站爬虫、搜索数据库和搜索工具(未示出)。搜索引擎30的 网站爬虫周期地访问网站10以请求网站10的网页数据,并把所请求的网页数据存储在搜 索引擎30的搜索数据库中。当搜索引擎30的网站爬虫访问网站10时,搜索引擎30的网 站爬虫首先作为发起方与网站10的网站服务器12建立通信连接,然后,搜索引擎30的网 站爬虫经由该建立的通信连接向网站服务器12发送HTTP请求消息以请求网站10的网页 数据,以及网站服务器12响应该HTTP请求消息经由该建立的通信连接向搜索引擎30的网 站爬虫返回包含所请求的网页数据的HTTP响应消息,其中,该建立的通信连接包括作为发 起方的搜索引擎30的网站爬虫和作为目的方的网站服务器12的地址和端口号。通常,搜 索引擎30的网站爬虫首先向网站10的网站服务器12发送用于请求网站10的主页的网页 数据的HTTP请求消息,然后,在从网站服务器12收到网站10的主页的网页数据后,搜索引 擎30的网站爬虫根据网站10的主页的网页数据中所包括的指向网站10的其它网页数据 的统一资源定位符(URL),继续向网站服务器12发送HTTP请求消息以请求网站10的其它 网页数据。通过这种方式,搜索引擎30可以获取网站10中可得到的各个网页数据。网页应用防火墙(WAF)40用于监控在用户20和/或搜索引擎30与网站10的网 站服务器12之间的通信连接,以及拦截经由该通信连接用户20和/或搜索引擎30发送给 网站10的用于请求网站10的网页数据的HTTP请求消息和网站10响应于用户20和搜索 引擎30的HTTP请求而发送给用户20和/或搜索引擎30的包含有网页数据的HTTP响应 消息。
6
网页应用防火墙40预先存储有可能会透露网站信息的特定字符。当网页应用防 火墙40拦截到网站10发送的HTTP响应消息是发送给搜索引擎30时,网页应用防火墙40 检查该发送给搜索引擎30的HTTP响应消息所包含的网页数据中是否包含有这些可能会透 露网站信息的特定字符,并当检查结果为肯定时,使用其它字符来屏蔽该发送给搜索引擎 30的HTTP响应消息所包含的网页数据包含的这些可能会透露网站信息的特定字符,从而 达到防止黑客利用谷歌黑客技术来对网站实施未授权操作的目的。图2是示出按照本发明一个实施例的HTTP请求消息的示例示意图。如图2所示, HTTP请求消息包含有表示网页数据请求者标识的域“User-Agent”和表示所请求的网页数 据的基地址的域“Host”。在图2所示的HTTP请求消息的例子中,网页数据请求者标识是 "googlebot/1.0",即谷歌搜索引擎的网站爬虫的标识,以及,所请求的网页数据的基地址 为“www. example, com”。除此之外,HTTP请求消息还包含有所请求的网页数据的相对地址, 在这个例子中,所请求的网页数据的相对地址为“/example, htm”。所请求的网页数据的基 地址和相对地址构成所请求的网页数据的统一资源定位符。由上述可以看出,HTTP请求消 息包含有网页数据请求者标识,因此,基于HTTP请求消息可以确定请求网页数据的请求者 是搜索引擎还是搜索引擎之外的其它用户。图3A和3B是示出按照本发明一个实施例的由网页应用防火墙执行的用于处理网 页数据的方法的流程图。如图3所示,当网页应用防火墙40拦截到用户20和/或搜索引擎30欲发送给网 站10的网站服务器12的用于请求网页数据的HTTP请求消息H时,网页应用防火墙40根 据该拦截的HTTP请求消息H中所包含的网页数据请求者标识,检查是否是搜索引擎30向 网站10请求网页数据(步骤S310)。当步骤S310的检查结果为否定时,流程进行到步骤S350。当步骤S310的检查结果为肯定时,网页应用防火墙40获取该拦截的HTTP请求消 息H所经由的通信连接的发起方的地址和端口号(步骤S320)。网页应用防火墙40存储该获取的地址和端口号作为搜索引擎30的标识(步骤 S340)。网页应用防火墙40检查该拦截的HTTP请求消息H所包含的网页数据的相对地址 中是否包含有表示该拦截的HTTP请求消息H所包含的网页数据的相对地址已经被加扰处 理的加扰标识符(步骤S350)。图4A示出了按照本发明一个实施例的具有网页数据的加 扰后的相对地址和加扰标识符的HTTP请求消息的示意图,其中,“ % 4C% 32% 56% 34% 59% 57% 31% 77% 62% 47% 55% 75% 61% 48% 52% 74 ? ”是网页数据的加扰后的相 对地址,“flag = 1”是加扰标识符。当步骤S350的检查结果为否定时,流程进行到步骤S380。当步骤S350的检查结果为肯定时,网页应用防火墙40使用预先指定的解扰方法 对该拦截的HTTP请求消息H所包含的网页数据的相对地址进行解扰处理,得到解扰后的相 对地址(步骤S360)。在本实施例中,该解扰方法可以是依次采用BASE64和URLENC0DE算 法进行解扰处理。网页应用防火墙40使用该解扰后的相对地址替换该拦截的HTTP请求消息H所包 含的网页数据的相对地址(步骤S370)。图4B示出了按照本发明一个实施例的具有网页数据的没有被加扰的相对地址的HTTP请求消息的示意图,其中,“example, htm”是网页数据 的没有被加扰的相对地址。网页应用防火墙40把该拦截的HTTP请求消息H发送给网站10的网站服务器 12(步骤 S380)。当网页应用防火墙40拦截到网站10的网站服务器12欲发送给用户20或搜索引 擎30的HTTP响应消息T时,网页应用防火墙40获取该拦截的HTTP响应消息T所经由的 通信连接的发起方的地址和端口号(步骤S390)。网页应用防火墙40判断该获取的地址和端口号是否与之前存储的作为搜索引擎 30的标识的地址和端口号是否相同(步骤S410)。当步骤S410的判断结果为否定时,表明该拦截的HTTP响应消息T不是发送给搜 索引擎30的,流程进行到步骤S470。当步骤S410的判断结果为肯定时,表明该拦截的HTTP响应消息T是发送给搜索 引擎30的,网页应用防火墙40检查该拦截的HTTP响应消息T所包含的网页数据中是否包 含有预先存储的可能会透露网站信息的特定字符(步骤S420)。当步骤S420的检查结果为否定时,流程进行到步骤S470。当步骤S420的检查结果为肯定时,网页应用防火墙40进一步检查该特定字符是 否被包含在该拦截的HTTP响应消息T所包含的网页数据所包含的统一资源定位符中(步 骤 S430)。当步骤S430的进一步检查结果为否定时,表明该特定字符没有被包含在该拦截 的HTTP响应消息T所包含的网页数据所包含的统一资源定位符中,从而网页应用防火墙40 使用空格符来替换该拦截的HTTP响应消息T所包含的网页数据所包含的该特定字符(步 骤S440),以屏蔽该网页数据所包含的该特定字符,然后流程进行到步骤S470。当步骤S430的进一步检查结果为肯定时,表明该特定字符被包含在该拦截的 HTTP响应消息T所包含的网页数据所包含的统一资源定位符中,网页应用防火墙40使用 与步骤S360所提到的解扰方法相对应的加扰方法,来对该拦截的HTTP响应消息T所包含 的网页数据所包含的统一资源定位符中的相对地址进行加扰处理,得到加扰后的相对地址 (步骤S450)。在本实施例中,该加扰方法可以是依次采用BASE64和URLENC0DE算法进行 加扰处理。图5A示出了按照本发明一个实施例的网页数据所包含的具有没有被加扰的相 对地址的统一资源定位符的示意图,其中,“example, htm”是没有被加扰的相对地址。网页应用防火墙40使用该加扰后的相对地址替换该拦截的HTTP响应消息T所包 含的网页数据所包含的统一资源定位符中的相对地址以屏蔽该网页数据所包含的该特定 字符,并在该统一资源定位符中增加用于表示该统一资源定位符的相对地址已被加扰的加 扰标识符(步骤S460)。图5B示出了按照本发明一个实施例的网页数据所包含的具有加 扰后的相对地址和加扰标识符的统一资源定位符的示意图,其中,“ % 4C% 32% 56% 34% 59% 57% 31% 77% 62% 47% 55% 75% 61% 48% 52% 74 ? ”是加扰后的相对地址,“flag =1”是加扰标识符。网页应用防火墙40把该拦截的HTTP响应消息T发送给相应的接收者(步骤 S470)。其它变型
本领域技术人员应当理解,虽然在上面实施例中,HTTP响应消息所包含的网页数 据所包含的统一资源定位符中所包含的可能会透露网站信息的特定字符也被屏蔽了,然 而,本发明并不局限于此。在本发明的其它实施例中,也可以只屏蔽HTTP响应消息所包含 的网页数据在不是统一资源定位符的那些部分中所包含的该特定字符。采用这种方式,已 经能大大减少黑客利用谷歌黑客技术对网站实施未授权操作的可能性。本领域技术人员应当理解,虽然在上面实施例中,解扰方法和加扰方法是采用 BASE64和URLENC0DE算法,然而,本发明并不局限于此。在本发明的其它实施例中,解扰方 法和加扰方法可以采用其它可用的各种算法。本领域技术人员应当理解,虽然在上面实施例中,当所拦截的HTTP响应消息所 包含的网页数据包含有可能会透露网站信息的特定字符但该特定字符没有被包括在该网 页数据所包含的统一资源定位符中时,使用空格符来替换该网页数据中所包含的该特定字 符,然而,本发明并不局限于此。在本发明的其它实施例中,也可以使用除空格之外的其它 字符来替换该网页数据中所包含的该特定字符,例如,该其它字符可以是符号?、!、#等。本领域技术人员应当理解,虽然上面实施例是在HTTP协议上实现的,并且用户20 和搜索引擎30向网站10发送的用于请求网页数据的请求消息是遵循HTTP协议的HTTP 请求消息,以及网站10向用户20和搜索引擎30返回的包含网页数据的响应消息是遵循 HTTP协议的HTTP响应消息,然而,本发明并不局限于此。本发明的其它实施例也可以在除 了 HTTP协议之外的其它协议上实现。本领域技术人员应当理解,虽然在上面实施例中,本发明的用于处理网页数据的 方法是在网页应用防火墙40中实施的,然而,本发明并不局限于此。在本发明的其它实施 例中,用于处理网页数据的方法也可以在搜索引擎30或网站服务器12中实施。其中,在网 站服务器12中实施的用于处理网页数据的方法与上面实施例所描述的在网页应用防火墙 40中实施的方法相同。在搜索引擎30中实施的用于处理网页数据的方法不同于上面实施 例所描述的在网页应用防火墙40中实施的方法在于,搜索引擎30不需要用于判断其所收 到的响应消息是否是网站10发送给搜索引擎30的步骤,因为搜索引擎30收到的响应消息 肯定是网站10发送搜索引擎30。上面各个实施例所公开的方法的各个步骤,可以采用软件、硬件或者软硬件相结 合的方式来实现。本领域技术人员应当理解,本发明的各个实施例可以在没有偏离发明实质的情况 下做出各种变型和改变,这些变型和改变都在本发明的保护范围之内。因此,本发明的保护 范围由所附的权利要求书来定义。
权利要求
一种用于处理网页数据的方法,包括检查网站欲发送给搜索引擎的响应消息所包括的网页数据是否包含有特定字符;以及当检查结果为肯定时,屏蔽所述网页数据包含的所述特定字符。
2.如权利要求1所述的方法,其中,所述屏蔽步骤进一步包括当所述检查结果为肯定,并且所述特定字符没有被包含在所述网页数据所包含的统一 资源定位符中时,使用与所述特定字符不同的其它字符,来替换所述网页数据包含的所述 特定字符。
3.如权利要求1所述的方法,其中,所述屏蔽步骤进一步包括当所述检查结果为肯定,并且所述特定字符被包含在所述网页数据包括的统一资源定 位符中时,使用通过对所述统一资源定位符中的相对地址进行加扰处理后得到的加扰后的 相对地址,来替换所述统一资源定位符中的相对地址。
4.如权利要求3所述的方法,其中,还包括步骤当接收到欲发送给所述网站的用于请求网页数据的请求消息,并且所述请求消息所 包括的网页数据的相对地址是所述加扰后的相对地址时,使用对所述加扰后的相对地址进 行解扰处理后得到的解扰后的相对地址,来替换所述请求消息所包括的网页数据的相对地址。
5.如权利要求1所述的方法,其中,还包括步骤确定所述响应消息是否是由所述网站发送给所述搜索引擎的;以及 当确定结果为肯定时,检查所述网页数据是否包含有所述特定字符。
6.如权利要求5所述的方法,其中,所述确定步骤进一步包括检测所述响应消息所经由的通信连接的发起方的地址和端口号是否与之前所述搜索 引擎要发送给所述网站的请求消息所经由的通信连接的发起方的地址和端口号相同;以及 当检测结果为肯定时,判定所述响应消息是由所述网站发送给所述搜索引擎的。
7.如权利要求1所述的方法,其中,所述特定字符包括可能透露所述网站的信息的字符。
8.如权利要求2所述的方法,其中,所述其它字符包括空格符。
9.一种用于处理网页数据的装置,包括检查模块,用于检查网站欲发送给搜索引擎的响应消息所包括的网页数据是否包含有 特定字符;以及屏蔽模块,用于当检查结果为肯定时,屏蔽所述网页数据包含的所述特定字符。
10.如权利要求9所述的装置,其中,所述屏蔽模块进一步用于当所述检查结果为肯定,并且所述特定字符没有被包含在所 述网页数据所包含的统一资源定位符中时,使用与所述特定字符不同的其它字符,来替换 所述网页数据包含的所述特定字符。
11.如权利要求9所述的装置,其中,所述屏蔽模块进一步用于当所述检查结果为肯定,并且所述特定字符被包含在所述网 页数据包括的统一资源定位符中时,使用通过对所述统一资源定位符中的相对地址进行加 扰处理后得到的加扰后的相对地址,来替换所述统一资源定位符中的相对地址。
12.如权利要求11所述的装置,其中,还包括替换模块,用于当接收到欲发送给所述网站的用于请求网页数据的请求消息,并且所 述请求消息所包括的网页数据的相对地址是所述加扰后的相对地址时,使用对所述加扰后 的相对地址进行解扰处理后得到的解扰后的相对地址,来替换所述请求消息所包括的网页 数据的相对地址。
13.如权利要求9所述的装置,其中,还包括确定模块,用于确定所述响应消息是否是 由所述网站发送给所述搜索引擎的,其中,所述检查模块进一步用于当确定结果为肯定时,检查所述网页数据是否包含有 所述特定字符。
14.如权利要求13所述的装置,其中,所述确定模块进一步包括检测模块,用于检测所述响应消息所经由的通信连接的发起方的地址和端口号是否与 之前所述搜索引擎要发送给所述网站的请求消息所经由的通信连接的发起方的地址和端 口号相同;以及判定模块,用于当检测结果为肯定时,判定所述响应消息是由所述网站发送给所述搜 索引擎的。
15.一种网页应用防火墙,包括拦截模块,用于拦截网站欲发送给搜索引擎的响应消息;检查模块,用于检查所述拦截的响应消息所包括的网页数据是否包含有特定字符;屏蔽模块,用于当检查结果为肯定时,屏蔽所述拦截的响应消息所包括的所述网页数 据包含的所述特定字符;以及发送模块,用于向所述搜索引擎发送所述拦截的已屏蔽所述特定字符的响应消息。
16.如权利要求15所述的网页应用防火墙,其中,所述屏蔽模块进一步用于当所述检查结果为肯定,并且所述特定字符没有被包含在所 述网页数据所包含的统一资源定位符中时,使用与所述特定字符不同的其它字符,来替换 所述网页数据包含的所述特定字符。
17.如权利要求15所述的网页应用防火墙,其中,所述屏蔽模块进一步用于当所述检查结果为肯定,并且所述特定字符被包含在所述网 页数据包括的统一资源定位符中时,使用通过对所述统一资源定位符中的相对地址进行加 扰处理后得到的加扰后的相对地址,来替换所述统一资源定位符中的相对地址。
18.一种机器可读介质,其上存储有指令集合,当所述指令集合被执行时,使得机器执 行权利要求1至8中任意一个权利要求所述的步骤。
全文摘要
本发明涉及一种用于处理网页数据的方法和装置,其中,该方法包括步骤检查网站欲发送给搜索引擎的响应消息所包括的网页数据是否包含有特定字符;以及,当检查结果为肯定时,屏蔽所述网页数据包含的所述特定字符。利用该方法和装置,能够防止黑客利用谷歌黑客技术来对网站实施未授权操作。
文档编号G06F17/30GK101901232SQ20091014382
公开日2010年12月1日 申请日期2009年5月31日 优先权日2009年5月31日
发明者汪涛 申请人:西门子(中国)有限公司