发明内容
本发明的主要目的是提供一种计算机系统和数据交互方法,以解决现有技术中的网络安全措施对于网络攻击的防御能力不佳的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种计算机系统。
本发明的计算机系统用于终端设备与网站服务器之间的数据交互,所述计算机系统包括一个或多个域名解析服务器以及一个或多个替身服务器,其中:所述域名解析服务器,用于接收所述终端设备发送的用于访问所述网站服务器的请求信息,并且根据预存的网站域名对应地址,确定终端设备请求所要发往的替身服务器;所述替身服务器,用于接收所述终端设备针对所述网站服务器的访问信息并对该访问信息进行安全检查,仅在该访问信息通过安全检查的情况下将该访问信息转发给所述网站服务器。
进一步地,所述替身服务器还用于将所述网站服务器针对所述访问信息的响应信息发送给所述终端设备。
进一步地,所述替身服务器还用于对所述响应信息使用预设方式进行安全过滤处理。
进一步地,所述替身服务器还用于:探测网站的网页代码存在的漏洞,然后根据所述漏洞的特征生成防护规则,再按照所述防护规则对所述网站服务器进行防护。
根据本发明的另一方面,提供了一种数据交互的方法。
本发明的数据交互的方法包括:域名解析服务器接收终端设备发送的用于访问网站服务器的请求信息,然后根据预存的网站域名对应地址,确定终端设备请求所要发往的替身服务器;所述替身服务器接收所述终端设备针对所述网站服务器的访问信息并对该访问信息进行安全检查,仅在该访问信息通过安全检查的情况下将该访问信息转发给所述网站服务器。
进一步地,所述将该访问信息转发给所述网站服务器之后,所述方法还包括:所述替身服务器对所述网站服务器针对所述访问信息的响应信息使用预设方式进行安全过滤处理,然后发送给所述终端设备。
进一步地,所述预设方式包括验证数字证书,和/或,网络地址过滤。
进一步地,本发明的数据交互的方法还包括:所述替身服务器探测网站的网页代码存在的漏洞,然后根据所述漏洞的特征生成防护规则,再按照所述防护规则对所述网站服务器进行防护。
进一步地,所述探测网站的网页代码存在的漏洞包括:从汇总多个检测方法形成的检测方法表中依次读取各个表项,使用读取的表项中的检测方法对所述网页代码进行检测。
进一步地,所述按照所述防护规则对所述网站服务器进行防护包括:按照所述防护规则对访问网站服务器的请求进行解析得出与防护规则相关的解析结果,然后将该解析结果与防护规则进行比对,若违反防护规则,就拒绝所述请求。
根据本发明实施例的技术方案,通过采用替身服务器,以及数字证书和IP地址访问限制,实现替身服务器与真实服务器之间的独享访问,只有替身服务器可访问真实网站,从而有效隐藏真实网站服务器的IP地址、web服务器类型、数据库信息等。可以在替身服务器内集中地采用现有或将来可能出现的各种安全技术以保证替身服务器的安全。另外,在本实施例中,替身服务器可以根据探测到网页代码存在的漏洞的特征生成防护规则,再按照该规则对输出网页代码的网站进行防护,这样有助于在发生黑客攻击之前就消除网页代码存在的漏洞带来的隐患,从而提高网站防护的效果。更为重要的是,即使替身服务器由于攻击而损坏,也不会影响到网站服务器本身的安全,而且网站服务器还可以利用其他替身服务器来实现与终端设备之间的数据交互,因此采用本实施例的技术方案有助于进一步提高网站服务器对于网络攻击的防御能力,从而保障网络服务器的数据安全。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
在本发明实施例中,终端设备例如个人计算机访问真实网站的域名,域名解析服务器将域名对应的IP(网际协议)地址解析到替身网站的IP地址,以后所有的用户访问都将发送到替身服务器上,替身服务器对所有用户请求进行安全检查,过滤掉攻击或不安全的请求。对于正常请求,替身服务器将向真实服务器发出相同请求,获得需要返回给用户的结果,并对返回结果进行安全过滤,防止信息泄露。
图2是根据本发明实施例的计算机系统的基本结构的示意图,如图2所示,本实施例的计算机系统主要包括一个域名解析服务器21以及一个或多个替身服务器22(图中以省略方式示出多个)。图中同时以省略方式示出了多个终端设备23,并示出了网站服务器24。在图2所示的结构中,终端设备访问网站服务器并接收网站服务器的响应,即由网站服务器向终端设备提供网络服务器所具有的网络服务功能。
域名解析服务器21主要用于接收终端设备23发送的用于访问网站服务器24的请求信息,并且根据预存的一组替身服务器网络地址,将请求信息发送给替身服务器。上述的对应关系的信息可以保存在域名解析服务器内。
替身服务器22主要用于接收终端设备23针对网站服务器24的访问信息并对该访问信息进行安全检查,仅在该访问信息通过安全检查的情况下将该访问信息转发给网站服务器24。
上述的网络地址可以是网际协议(IP)地址。
以下结合图3对本实施例中的数据交互方法作出说明,图3是根据本发明实施例的数据交互的方法的基本步骤的示意图,该方法可基于图2中的计算机系统实现。
如图3所示的流程,域名解析服务器接收终端设备发送的用于访问网站服务器的请求信息,然后将请求转发给替身服务器。
替身服务器接收终端设备针对网站服务器的访问信息并对该访问信息进行安全检查,发现是否存在非法访问、sql注入攻击、XSS攻击等,仅在该访问信息通过安全检查的情况下将该访问信息转发给网站服务器。
当网站服务将请求结果返回给替身服务器,替身服务器对返回结果进行安全过滤后,过滤带有病毒或网页木马的网页内容或网页中恶意的URL,再将结果发送给终端设备,避免终端设备感染病毒木马等恶意软件。
在存在多个替身服务器的情况下,如果其中部分替身服务器由于某种原因例如网络攻击而无法正常运行,域名服务器能够探测到替身服务器的存活状态,响应速度,当域名解析服务器检测到某台替身服务器的运行情况异常是,会将终端设备请求发往其他替身服务器。这样在终端访问用户看来,多个替身服务器组成的集群功能总是能够保证网站的正常运行和安全。
本实施例中的替身服务器还可以执行网站防护功能,以实现对网站的安全防护或称作对网站服务器进行防护。以下对本发明实施例的网站防护方法作出说明。
本发明实施例的网站防护方法可由替身服务器执行,并且可在图3所示的流程之前、之后或同时进行,主要包括如下步骤:
步骤S41:探测网页代码存在的漏洞;
步骤S43:根据探测到的漏洞的特征生成防护规则;
步骤S45:按照生成的防护规则对输出所述网页代码的网站服务器进行防护。
以下对于上述的步骤作详细说明。
网站代码漏洞主要是由于web网站开发人员在编写网页代码时,没有对用户的输入数据或者是页面中所携带的信息(如Cookie)进行必要的合法性判断而形成的可被攻击者利用的程序缺陷。网站漏洞在网站代码编写过程中产生,在网站第一发布或对网站更新时被暴露。
下面以常见的用户登录页面/login.jsp代码对网页的漏洞和防护规则作进一步说明。本实施例中作为示例的一个用户登录页面/login.jsp代码如下:
以上代码的漏洞在于:未对用户输入的登录账号no和密码psw进行数据类型、字段长度的校验,也未对用户输入进行特殊字符的过滤。因此,如果包含上述代码的网页被发布,那么黑客可以通过检测代码中是否对登录账号和密码的数据类型、字段长度作校验,从而发现上述漏洞,然后在登录账号输入框中输入“1’or 1=1--”,在密码输入框中任意输入,并点击登录按钮,提交登录请求。后台执行代码将执行如下sql语句:
“select *from studentInfo where sid=’1 or 1=1”
输出结果为studentInfo表中的所有用户账号和密码。
步骤S41可以是对已有的网页代码进行探测,如果有网页发生更新,则可以对更新的网页代码进行探测。因此步骤S41之前还可以对网站的更新进行监控,以确认网站是否提供了新的网页。通过定时爬行网站发现网站是否改版或增加页面,通过检测每个网页MD5值来确认网页是否发生更新。具体可以是将网页当前的MD5值与保存的该网页的MD5值进行比较看二者是否相同。如果不同,则确认网页发生更新,并且保存当前的MD5值。如果检查到有网页发生更新,则执行步骤S41,探测这些网页的网页代码。
探测网页的网页代码可以采用模拟黑客攻击的手段来进行。具体可以先将黑客攻击的各种手段所依据的网页检测方法汇总(例如上述的检测代码中是否对登录账号和密码的数据类型、字段长度作校验),形成检测方法表,每次探测网页时,从检测方法表中依次读取各个表项以及使用表项中的检测方法对网页代码进行检测。
当发现网页内容发生变化或新增加网页,就需要对新增网页和发生变化的网页进行漏洞检测,为存在安全漏洞的页面生成防护规则。网站漏洞防护规则是用来定义正常或异常的网站访问行为或特征的一组数据。
以上面的用户登录页面为例,考虑如下各项:
(1)被保护URL:/login.jsp
(2)请求类型为post;
(3)变量个数和类型:变量2个,变量名为sid、psw,sid为数字’0~9’,psw为数字’0~9’或字母’a-z”A-Z’;
(4)变量长度:sid长度为固定长度6,psw长度为6~8。
则防护规则可以定义如下:
URL=/login.jsp action=post varnum=2 sid=’0~9’psw=’0~9”a-z”A-Z’sidLength=6
pswLength=6~8
可以建立一个防护规则库,保存各项防护规则。在步骤S25中进行安全防护时,具体可以是按照防护规则库中的每个条目,针对每个访问网站的请求例如http请求进行解析,得出与防护规则相关的解析结果例如访问动作action、访问变量、变量值的长度和类型等,并和防护规则进行比对,当发现违反防护规则时就拒绝用户请求。
可以对防护规则库进行升级,具体可以是当发现新网页漏洞,并生成新的防护规则后,将新的防护规则添加到防护规则库中。
根据本发明实施例的技术方案,通过采用替身服务器,以及数字证书和IP地址访问限制,实现替身服务器与真实服务器之间的独享访问,只有替身服务器可访问真实网站,从而有效隐藏真实网站服务器的IP地址、web服务器类型、数据库信息等。可以在替身服务器内集中地采用现有或将来可能出现的各种安全技术以保证替身服务器的安全。另外,在本实施例中,替身服务器可以根据探测到网页代码存在的漏洞的特征生成防护规则,再按照该规则对输出网页代码的网站进行防护,这样有助于在发生黑客攻击之前就消除网页代码存在的漏洞带来的隐患,从而提高网站防护的效果。更为重要的是,即使替身服务器由于攻击而损坏,也不会影响到网站服务器本身的安全,而且网站服务器还可以利用其他替身服务器来实现与终端设备之间的数据交互,因此采用本实施例的技术方案有助于进一步提高网站服务器对于网络攻击的防御能力,从而保障网络服务器的数据安全。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。