一种WEB页面访问方法和装置与流程

文档序号:12478079阅读:182来源:国知局
一种WEB页面访问方法和装置与流程
本发明涉及通信
技术领域
,尤其涉及一种WEB页面访问方法和装置。
背景技术
:近年来,随着计算机、网络以及图像处理、传输技术的飞速发展,视频监控系统的普及化趋势越来越明显,视频监控系统正在逐步迈入高清化,智能化,视频监控系统可以应用于众多领域,如智能交通、智慧园区、平安城市等。目前,视频监控系统对安全防范的要求越来越高,为了提高安全性,通过在被保护设备之前放置安全设备,以使用安全设备对访问被保护设备的报文进行过滤,从而避免将攻击报文传输到被保护设备上,且不影响正常业务报文的传输,从而可以防止攻击者对被保护设备的攻击,保障被保护设备的安全性。为了实现上述过程,安全设备在接收到报文后,需要分析该报文是否为攻击报文,如果是,则丢弃该报文,如果否,则将该报文发送给被保护设备。但是,在该方式下,安全设备需要对接收到的所有报文进行分析,当有大量报文访问被保护设备时,安全设备就需要对大量报文进行分析,安全设备的处理性能可能无法满足大量分析的需求,从而无法满足大流量视频监控环境的应用。而且,当存在大量被保护设备时,在每个被保护设备之前都部署安全设备,则需要在网络中额外部署大量安全设备,而安全设备通常为防火墙设备或者入侵检测设备,其价值很高,很难部署大量的防火墙设备或者入侵检测设备。技术实现要素:本发明提供一种WEB页面访问方法,应用于WEB服务器上,包括:在接收到来自WEB客户端的第一访问请求时,获得第一数值和第二数值,并向所述WEB客户端发送重定向消息,所述重定向消息中携带所述第二数值和预设第二算法;其中,所述第二数值是基于所述第一数值和预设第一算法确定的,且所述预设第二算法是所述预设第一算法的逆算法;在接收到来自所述WEB客户端的第二访问请求时,若所述第二访问请求中携带挑战值,则比较所述挑战值与所述第一数值是否相同;其中,所述挑战值是所述WEB客户端利用所述第二数值和所述预设第二算法生成的;若相同,则允许所述WEB客户端访问所述WEB服务器;若不同或所述第二访问请求中没有携带挑战值,则禁止所述WEB客户端访问所述WEB服务器。所述获得第一数值和第二数值的过程,具体包括:随机生成第一数值,并利用所述第一数值和预设第一算法生成第二数值;或者,在接收到来自WEB客户端的第一访问请求之前,随机生成第一数值,并利用所述第一数值和预设第一算法生成第二数值,并将所述第一数值和所述第二数值存储在预先配置的数据表中;在接收到来自WEB客户端的第一访问请求之后,从所述数据表中查询到所述第一数值和所述第二数值。所述预设第一算法的消耗时间小于所述预设第二算法的消耗时间;所述预设第一算法包括RSA加密算法,所述预设第二算法包括RSA解密算法。所述接收到来自所述WEB客户端的第二访问请求之后,所述方法进一步包括:统计向所述WEB客户端发送重定向消息的时间,与接收到来自所述WEB客户端的第二访问请求的时间之间的时间间隔;若所述时间间隔小于预设时间阈值,则禁止所述WEB客户端访问所述WEB服务器;若所述时间间隔不小于所述预设时间阈值,则执行比较所述挑战值与所述第一数值是否相同的过程。所述重定向消息中携带JS代码,且所述JS代码中携带所述第二数值和所述预设第二算法;合法的WEB客户端需要解析所述JS代码中携带的所述第二数值和所述预设第二算法,并利用所述第二数值和所述预设第二算法生成挑战值,且将所述挑战值添加到所述第二访问请求的cookie信息中进行发送;非法扫描的WEB客户端不会对所述JS代码中携带的信息进行解析。本发明提供一种WEB页面访问装置,应用于WEB服务器上,包括:第一处理模块,用于在接收到来自WEB客户端的第一访问请求时,获得第一数值和第二数值,并向所述WEB客户端发送重定向消息,所述重定向消息中携带所述第二数值和预设第二算法;其中,所述第二数值是基于所述第一数值和预设第一算法确定的,且所述预设第二算法是所述预设第一算法的逆算法;第二处理模块,用于在接收到来自WEB客户端的第二访问请求时,若所述第二访问请求中携带挑战值,则比较所述挑战值与所述第一数值是否相同;其中,所述挑战值是所述WEB客户端利用所述第二数值和所述预设第二算法生成的;若相同,则允许所述WEB客户端访问所述WEB服务器;若不同或所述第二访问请求中没有携带挑战值,则禁止所述WEB客户端访问所述WEB服务器。所述第一处理模块,具体用于在获得第一数值和第二数值的过程中,随机生成第一数值,并利用所述第一数值和预设第一算法生成第二数值;或者,在接收到来自所述WEB客户端的第一访问请求之前,随机生成第一数值,并利用所述第一数值和预设第一算法生成第二数值,并将所述第一数值和所述第二数值存储在预先配置的数据表中;在接收到来自所述WEB客户端的第一访问请求之后,从所述数据表中查询到所述第一数值和所述第二数值。所述预设第一算法的消耗时间小于所述预设第二算法的消耗时间;所述预设第一算法包括RSA加密算法,所述预设第二算法包括RSA解密算法。所述第二处理模块,还用于在接收到来自所述WEB客户端的第二访问请求之后,统计向所述WEB客户端发送重定向消息的时间,与接收到来自所述WEB客户端的第二访问请求的时间之间的时间间隔;若所述时间间隔小于预设时间阈值,则禁止所述WEB客户端访问所述WEB服务器;若所述时间间隔不小于所述预设时间阈值,则执行比较所述挑战值与所述第一数值是否相同的过程。所述重定向消息中携带JS代码,且所述JS代码中携带所述第二数值和所述预设第二算法;合法的WEB客户端需要解析所述JS代码中携带的所述第二数值和所述预设第二算法,并利用所述第二数值和所述预设第二算法生成挑战值,且将所述挑战值添加到所述第二访问请求的cookie信息中进行发送;非法扫描的WEB客户端不会对所述JS代码中携带的信息进行解析。基于上述技术方案,本发明实施例中,可以由WEB服务器对接收到的访问请求进行分析,若分析出访问请求是合法用户发送的,则允许WEB客户端访问WEB服务器,若分析出访问请求是攻击者发送的,则禁止WEB客户端访问WEB服务器,从而可以保障WEB服务器的安全性,防止攻击者对WEB服务器的攻击,对用户的干扰比较小,而且不需要在WEB服务器之前部署防火墙设备或者入侵检测设备等安全设备。尤其是针对WEB扫描软件来说,由于WEB扫描软件不会对WEB服务器返回的JS代码进行完整解析,因此,WEB扫描软件不会发送符合检测要求的访问请求,可以避免其访问WEB服务器,可以有效防止WEB扫描软件对WEB服务器进行内容扫描,从而阻止进一步的渗透攻击。附图说明为了更加清楚地说明本发明实施例或者现有技术中的技术方案,下面将对本发明实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1是本发明一种实施方式中的应用场景示意图;图2是本发明一种实施方式中的WEB页面访问方法的流程图;图3是本发明一种实施方式中的登录页面的示意图;图4是本发明一种实施方式中的WEB服务器的硬件结构图;图5是本发明一种实施方式中的WEB页面访问装置的结构图。具体实施方式在本发明使用的术语仅仅是出于描述特定实施例的目的,而非限制本发明。本发明和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。本发明实施例中提出一种WEB(WorldWideWeb,万维网)页面访问方法,可以应用于包括WEB服务器和WEB客户端的系统中,WEB服务器用于为用户提供WEB页面服务,WEB客户端用于访问WEB服务器,并从WEB服务器上获取WEB页面服务,该WEB客户端可以是安装到终端设备(如个人计算机、移动终端等)上的浏览器。参见图1所示,为本发明实施例的应用场景示意图,假设WEB客户端1是合法用户使用,WEB客户端2是攻击者使用,则WEB服务器需要允许WEB客户端1访问WEB服务器,以使WEB客户端1从WEB服务器上获取WEB页面服务;WEB服务器需要禁止WEB客户端2访问WEB服务器,以使WEB客户端2无法从WEB服务器上获取WEB页面服务,保证WEB服务器的安全。为了实现上述功能,本发明实施例中提出了一种WEB页面访问方法,参见图2所示,该WEB页面访问方法具体可以包括以下步骤:步骤201,WEB服务器在接收到来自WEB客户端的第一访问请求时,获得第一数值和第二数值,并向该WEB客户端发送重定向消息,该重定向消息中携带该第二数值和预设第二算法。其中,该第二数值是基于该第一数值和预设第一算法确定的,且该预设第二算法是该预设第一算法的逆算法。步骤202,WEB服务器在接收到来自WEB客户端的第二访问请求时,若该第二访问请求中携带挑战值,则比较该挑战值与该第一数值是否相同。其中,该挑战值是该WEB客户端利用该第二数值和该预设第二算法生成的。若相同,则WEB服务器执行步骤203;若不同,则WEB服务器执行步骤204。步骤203,WEB服务器允许WEB客户端访问本WEB服务器。基于此,WEB客户端可以从WEB服务器上获取到WEB页面服务。步骤204,WEB服务器禁止WEB客户端访问本WEB服务器。基于此,WEB客户端无法从WEB服务器上获取到WEB页面服务。针对步骤201,在一个例子中,WEB服务器获得第一数值和第二数值的过程,可以包括但不限于如下方式:方式一、WEB服务器随机生成第一数值,并利用该第一数值和预设第一算法生成第二数值。或者,方式二、WEB服务器在接收到来自WEB客户端的第一访问请求之前,随机生成第一数值,并利用该第一数值和预设第一算法生成第二数值,并将该第一数值和该第二数值存储在预先配置的数据表中。进一步的,WEB服务器在接收到来自WEB客户端的第一访问请求之后,可以直接从该数据表中查询到该第一数值和该第二数值。在一个例子中,该预设第一算法的消耗时间可以小于该预设第二算法的消耗时间,如预设第一算法的消耗时间远远小于预设第二算法的消耗时间,例如,预设第一算法的消耗时间可以小于预设第二算法的消耗时间的十分之一。在一个例子中,考虑到RSA(RivestShamirAdleman)加密算法的消耗时间可以远远小于RSA解密算法的消耗时间,因此,预设第一算法可以包括但不限于:RSA加密算法,预设第二算法可以包括但不限于:RSA解密算法。针对步骤202,在一个例子中,WEB服务器在接收到来自WEB客户端的第二访问请求之后,还可以统计向WEB客户端发送重定向消息的时间,与接收到来自WEB客户端的第二访问请求的时间之间的时间间隔。若该时间间隔小于预设时间阈值,则WEB服务器可以直接禁止WEB客户端访问本WEB服务器,而不再执行比较挑战值与第一数值是否相同的过程。若该时间间隔不小于预设时间阈值,则WEB服务器执行比较挑战值与第一数值是否相同的过程。在一个例子中,WEB服务器在接收到来自WEB客户端的第二访问请求之后,若第二访问请求中没有携带挑战值,则WEB服务器可以直接禁止WEB客户端访问本WEB服务器,而不再执行比较挑战值与第一数值是否相同的过程。在一个例子中,WEB服务器向WEB客户端发送的重定向消息中还可以携带JS(JavaScript,一种直译式脚本语言)代码,且该JS代码中携带有第二数值和预设第二算法。进一步的,合法的WEB客户端(如WEB客户端1)需要解析该JS代码中携带的第二数值和预设第二算法,并利用该第二数值和该预设第二算法生成挑战值,且可以将该挑战值添加到第二访问请求的cookie(即浏览器缓存)信息中进行发送。此外,非法扫描的WEB客户端(如WEB客户端2)不会对JS代码中携带的信息进行完整的解析,因此,非法扫描的WEB客户端发送的第二访问请求中可能不携带挑战值,或者,携带不正确的挑战值(即不是WEB客户端根据该第二数值和该预设第二算法生成的挑战值)。基于上述技术方案,本发明实施例中,可以由WEB服务器对接收到的访问请求进行分析,若分析出访问请求是合法用户发送的,则允许WEB客户端访问WEB服务器,若分析出访问请求是攻击者发送的,则禁止WEB客户端访问WEB服务器,从而可以保障WEB服务器的安全性,防止攻击者对WEB服务器的攻击,对用户的干扰比较小,而且不需要在WEB服务器之前部署防火墙设备或者入侵检测设备等安全设备。尤其是针对WEB扫描软件来说,由于WEB扫描软件不会对WEB服务器返回的JS代码进行完整解析,因此,WEB扫描软件不会发送符合检测要求的访问请求,可以避免其访问WEB服务器,可以有效防止WEB扫描软件对WEB服务器进行内容扫描,从而阻止进一步的渗透攻击。为了更加清楚的说明上述实施例,结合如下流程进行进一步的说明。步骤1、当WEB客户端(如图1中的WEB客户端1或者WEB客户端2)需要访问WEB服务器时,则可以向WEB服务器发送第一访问请求。步骤2、WEB服务器在接收到来自WEB客户端的第一访问请求时,获知该WEB客户端当前未登录,并可以向该WEB客户端发送重定向消息。其中,该重定向消息可以用于将WEB客户端重定向到登录页面,如图3所示,为登录页面的一个示意图,该登录页面通常可以包括用户名、密码。本发明实施例中,在WEB服务器向WEB客户端发送重定向消息之前,还可以获得第一数值和第二数值,并在该重定向消息的JS代码中携带该第二数值和预设第二算法。综上所述,在WEB服务器向WEB客户端发送的重定向消息中,可以携带用户名输入框、密码输入框、第二数值、预设第二算法。在一个例子中,针对WEB服务器获得第一数值和第二数值的过程,具体可以包括但不限于如下方式:方式一、WEB服务器随机生成第一数值,并利用该第一数值和预设第一算法生成第二数值。或者,方式二、WEB服务器在接收到来自WEB客户端的第一访问请求之前,可以随机生成第一数值,并利用该第一数值和预设第一算法生成第二数值,并将该第一数值和该第二数值存储在预先配置的数据表中。进一步的,WEB服务器在接收到来自WEB客户端的第一访问请求之后,可以直接从该数据表中查询到该第一数值和该第二数值。在一个例子中,该第二数值可以是WEB服务器基于该第一数值和预设第一算法确定的,且上述预设第二算法可以是该预设第一算法的逆算法。以预设第一算法为y=f(x),预设第二算法为x=f’(y)为例进行说明。针对方式一,WEB服务器在接收到来自WEB客户端的第一访问请求之后,WEB服务器可以随机生成一个第一数值x1,并通过预设第一算法y=f(x)计算出第二数值y1。基于此,在重定向消息的JS代码中,可以携带第二数值y1和预设第二算法x=f’(y),该预设第二算法x=f’(y)可以通过JS代码实现。针对方式二,WEB服务器上可以预先配置一个数据表,WEB服务器可以随机生成一个第一数值x1,并通过预设第一算法y=f(x)计算出第二数值y1,并在数据表中记录第一数值x1和第二数值y1的对应关系。WEB服务器随机生成一个第一数值x2,并通过预设第一算法y=f(x)计算出第二数值y2,并在数据表中记录第一数值x2和第二数值y2的对应关系。以此类推,数据表可以如表1所示。WEB服务器在接收到来自WEB客户端的第一访问请求之后,可以直接从该数据表中查询到第一数值x1和第二数值y1,或者,查询到第一数值x2和第二数值y2。基于此,在重定向消息的JS代码中,可以携带第二数值y1(或者y2)和预设第二算法x=f’(y),该预设第二算法x=f’(y)可以通过JS代码实现。表1第一数值第二数值x1y1x2y2x3y3在方式二中,通过在数据表中预先维护第一数值和第二数值的对应关系,WEB服务器在接收到来自WEB客户端的第一访问请求后,就可以直接从数据表中查询到第一数值和第二数值,而不需要重新计算第一数值和第二数值,从而加快获得第一数值和第二数值的速度,而且查询第一数值和第二数值的方式,与计算第一数值和第二数值的方式相比,可以提高WEB服务器的性能。在一个例子中,预设第一算法y=f(x)的消耗时间小于预设第二算法x=f’(y)的消耗时间,如预设第一算法y=f(x)的消耗时间远远小于预设第二算法x=f’(y)的消耗时间。例如,预设第一算法y=f(x)为RSA加密算法,预设第二算法x=f’(y)为RSA解密算法。当然,在实际应用中,预设第一算法y=f(x)并不局限于RSA加密算法,且预设第二算法x=f’(y)也不局限于RSA解密算法,只要预设第一算法y=f(x)的消耗时间小于预设第二算法x=f’(y)的消耗时间即可,本发明实施例中对此预设第一算法y=f(x)、预设第二算法x=f’(y)的选取不做限制。其中,预设第一算法y=f(x)的消耗时间远小于其逆算法x=f’(y)。例如,在实际应用中,由于使用RSA加密算法进行加密的时间,约为755毫秒,而使用RSA解密算法进行解密的时间,约为28473毫秒,因此,可以将RSA加密算法作为预设第一算法y=f(x),将RSA解密算法作为预设第二算法x=f’(y)。步骤3、WEB客户端在接收到来自WEB服务器的重定向消息后,将图3所示的登录页面显示给用户,由用户在该登录页面上输入用户名和密码。步骤4、WEB客户端生成包括用户名和密码的第二访问请求,并向WEB服务器发送该第二访问请求,由WEB服务器接收该第二访问请求。在一个例子中,对于合法用户使用的WEB客户端1来说,WEB客户端1在接收到重定向消息后,可以解析重定向消息的JS代码中的所有内容,继而从该JS代码中解析出第二数值y1和预设第二算法x=f’(y)。之后,WEB客户端1可以利用第二数值y1和预设第二算法x=f’(y)生成挑战值,即将第二数值y1代入预设第二算法x=f’(y)中,得到挑战值x1。基于此,WEB客户端1还可以在第二访问请求中添加挑战值x1,即第二访问请求中携带用户名、密码和挑战值x1。在一个例子中,对于攻击者使用的WEB客户端2来说,WEB客户端2在接收到重定向消息后,由于从重定向消息的JS代码中解析出所有内容的过程,是一个非常耗时的操作,因此WEB客户端2不会解析重定向消息的JS代码中的所有内容,不会对JS代码中携带的信息进行完整的解析,也就无法从JS代码中解析出第二数值y1和预设第二算法x=f’(y)。基于此,WEB客户端2不会在第二访问请求中添加挑战值,即第二访问请求中只会携带用户名、密码;或者,WEB客户端2自身随机生成一个挑战值k,该挑战值k与第二数值y1和预设第二算法x=f’(y)无关,此时第二访问请求中可以携带用户名、密码和挑战值k。在一个例子中,出于不同的目的,攻击者使用WEB扫描软件对WEB服务器进行漏洞扫描的过程越来越多,漏洞扫描是进一步进行漏洞挖掘的前提。对于目前的WEB扫描软件来说,会模拟WEB客户端向WEB服务器发送访问请求,但是WEB扫描软件需要在短时间内发送大量访问请求,因此不会对重定向消息的JS代码中携带的信息进行完整解析,以加快访问请求的发送速度,正是基于这一原理,可以在重定向消息的JS代码中携带第二数值y1和预设第二算法x=f’(y),合法用户使用的WEB客户端1可以解析重定向消息的JS代码中的所有内容,继而从该JS代码中解析出第二数值y1和预设第二算法x=f’(y),而攻击者使用的WEB客户端2不会解析重定向消息的JS代码中的所有内容,从而无法从该JS代码中解析出第二数值y1和预设第二算法x=f’(y)。这样,就可以区分出合法用户使用的WEB客户端和攻击者使用的WEB客户端,从而对二者进行区分处理,以保证WEB服务器的安全性,且不影响用户的使用。此外,若攻击者使用的WEB客户端2解析重定向消息的JS代码中的所有内容,继而从该JS代码中解析出第二数值y1和预设第二算法x=f’(y),由于这一过程会消耗WEB客户端2大量的时间,显著提高了WEB客户端2的扫描运算量,WEB客户端2就无法在短时间内发送大量访问请求,也就无法有效的对WEB服务器进行漏洞扫描,从而影响漏洞扫描过程,导致漏洞扫描失败。在一个例子中,WEB客户端在接收到来自WEB服务器的重定向消息之后,用户在登录页面上输入用户名和密码的过程,与WEB客户端生成挑战值x1的过程,二者可以是同时进行的,因此不会影响正常的WEB页面访问过程。而且,在正常情况下,用户输入用户名和密码(通常会限制密码的最小长度)会耗费一定的时间,因此当密码输入完成后,WEB客户端已经生成挑战值x1。在一个例子中,WEB客户端可以将挑战值x1添加到第二访问请求的cookie中。当然,在实际应用中,并不局限于将挑战值x1添加到cookie中,还可以将该挑战值x1添加到get(得到)参数或者post(传输)参数中,对此不做限制。步骤5、WEB服务器在接收到来自WEB客户端的第二访问请求时,统计WEB服务器向WEB客户端发送重定向消息的时间,与WEB服务器接收到来自该WEB客户端的第二访问请求的时间之间的时间间隔。若该时间间隔小于预设时间阈值,则执行步骤9;若该时间间隔不小于预设时间阈值,则执行步骤6。在一个例子中,预设时间阈值可以根据实际经验进行设置。例如,预设时间阈值可以大于用户在登录页面上输入用户名和密码的时间,也大于(WEB客户端解析JS代码中所有内容的时间+生成挑战值的时间,如采用RSA解密算法生成挑战值的时间),对此预设时间阈值的设置,本发明实施例中不做限制。在一个例子中,通过比较该时间间隔是否小于预设时间阈值,对于WEB扫描软件来说,其需要在短时间内发送大量访问请求,因此攻击者使用的WEB客户端发送的第二访问请求的时间,与WEB服务器发送重定向消息的时间之间的时间间隔,会小于预设时间阈值,因此,可以直接执行步骤9。而合法用户使用的WEB客户端发送的第二访问请求的时间,与WEB服务器发送重定向消息的时间之间的时间间隔,会大于预设时间阈值,因此,可以直接执行步骤6。步骤6,WEB服务器判断第二访问请求中是否携带挑战值。如果是,则执行步骤7;如果否,则执行步骤9。其中,对于来自WEB客户端1的第二访问请求来说,该第二访问请求中会携带挑战值x1。对于来自WEB客户端2的第二访问请求来说,该第二访问请求中会携带挑战值k或者未携带挑战值。步骤7、WEB服务器比较该第二访问请求中携带的挑战值与上述的第一数值x1是否相同。如果相同,则执行步骤8;如果不同,则执行步骤9。其中,对于来自WEB客户端1的第二访问请求来说,第二访问请求中携带的挑战值x1与上述的第一数值x1相同。对于来自WEB客户端2的第二访问请求来说,第二访问请求中携带的挑战值k与上述的第一数值x1不同。步骤8、WEB服务器允许WEB客户端访问本WEB服务器。例如,WEB服务器可以允许WEB客户端1访问本WEB服务器,基于此,WEB客户端1可以从WEB服务器上获取到WEB页面服务。步骤9、WEB服务器禁止WEB客户端访问本WEB服务器。例如,WEB服务器可以禁止WEB客户端2访问本WEB服务器,基于此,WEB客户端2无法从WEB服务器上获取到WEB页面服务。在一个例子中,WEB服务器允许WEB客户端访问本WEB服务器之后,还可以向WEB客户端返回一个唯一标识,例如sessionID(会话标识)。在后续过程中,WEB客户端可以直接使用该sessionID作为此次登录的唯一标识,并可以访问到WEB服务器,不再执行上述步骤,不用重新输入用户名密码等信息。在一个例子中,WEB服务器允许WEB客户端访问本WEB服务器之后,还可以将WEB客户端对应的IP地址添加到白名单中。当该WEB客户端再次访问WEB服务器时,WEB服务器在接收到来自WEB客户端的第一访问请求时,若获知WEB客户端对应的IP地址在白名单中,则采用传统方式向WEB客户端发送重定向消息,不再采用上述方式对WEB客户端进行校验,在此不再赘述。在一个例子中,WEB服务器禁止WEB客户端访问本WEB服务器之后,还可以将WEB客户端对应的IP地址添加到黑名单中。当该WEB客户端再次访问WEB服务器时,WEB服务器在接收到来自WEB客户端的第一访问请求时,若获知WEB客户端对应的IP地址在黑名单中,则直接丢弃第一访问请求,不再向WEB客户端发送重定向消息,不响应来自此IP地址的任何后续请求。基于上述技术方案,本发明实施例中,可以由WEB服务器对接收到的访问请求进行分析,若分析出访问请求是合法用户发送的,则允许WEB客户端访问WEB服务器,若分析出访问请求是攻击者发送的,则禁止WEB客户端访问WEB服务器,从而可以保障WEB服务器的安全性,防止攻击者对WEB服务器的攻击,对用户的干扰比较小,而且不需要在WEB服务器之前部署防火墙设备或者入侵检测设备等安全设备。尤其是针对WEB扫描软件来说,由于WEB扫描软件不会对WEB服务器返回的JS代码进行完整解析,因此,WEB扫描软件不会发送符合检测要求的访问请求,可以避免其访问WEB服务器,可以有效防止WEB扫描软件对WEB服务器进行内容扫描,从而阻止进一步的渗透攻击。基于与上述方法同样的发明构思,本发明实施例还提供一种WEB页面访问装置,可以应用在WEB服务器上。该WEB页面访问装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的WEB服务器的处理器,读取非易失性存储器中对应的计算机程序指令形成的。从硬件层面而言,如图4所示,为本发明提出的WEB页面访问装置所在的WEB服务器的一种硬件结构图,除了图4所示的处理器、非易失性存储器外,WEB服务器还包括其他硬件,如负责处理报文的转发芯片、网络接口、内存等;从硬件结构上来讲,WEB服务器还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。如图5所示,为本发明提出的WEB页面访问装置的结构图,该装置包括:第一处理模块11,用于在接收到来自WEB客户端的第一访问请求时,获得第一数值和第二数值,向所述WEB客户端发送重定向消息,所述重定向消息中携带所述第二数值和预设第二算法;其中,所述第二数值是基于所述第一数值和预设第一算法确定的,且所述预设第二算法是所述预设第一算法的逆算法;第二处理模块12,用于在接收到来自WEB客户端的第二访问请求时,若所述第二访问请求中携带挑战值,则比较所述挑战值与所述第一数值是否相同;其中,所述挑战值是所述WEB客户端利用所述第二数值和所述预设第二算法生成的;若相同,允许所述WEB客户端访问所述WEB服务器;若不同或所述第二访问请求中没有携带挑战值,禁止所述WEB客户端访问所述WEB服务器。所述第一处理模块11,具体用于在获得第一数值和第二数值的过程中,随机生成第一数值,并利用所述第一数值和预设第一算法生成第二数值;或者,在接收到来自所述WEB客户端的第一访问请求之前,随机生成第一数值,并利用所述第一数值和预设第一算法生成第二数值,并将所述第一数值和所述第二数值存储在预先配置的数据表中;在接收到来自所述WEB客户端的第一访问请求之后,从所述数据表中查询到所述第一数值和所述第二数值。所述预设第一算法的消耗时间小于所述预设第二算法的消耗时间;所述预设第一算法包括RSA加密算法,所述预设第二算法包括RSA解密算法。所述第二处理模块12,还用于在接收到来自所述WEB客户端的第二访问请求之后,统计向所述WEB客户端发送重定向消息的时间,与接收到来自所述WEB客户端的第二访问请求的时间之间的时间间隔;若所述时间间隔小于预设时间阈值,禁止所述WEB客户端访问所述WEB服务器;若所述时间间隔不小于所述预设时间阈值,则执行比较所述挑战值与所述第一数值是否相同的过程。在一个例子中,所述重定向消息中携带JS代码,且所述JS代码中携带所述第二数值和所述预设第二算法;合法的WEB客户端需要解析所述JS代码中携带的所述第二数值和所述预设第二算法,并利用所述第二数值和所述预设第二算法生成挑战值,且将所述挑战值添加到所述第二访问请求的cookie信息中进行发送;非法扫描的WEB客户端不会对所述JS代码中携带的信息进行解析。其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。基于上述技术方案,本发明实施例中,可以由WEB服务器对接收到的访问请求进行分析,若分析出访问请求是合法用户发送的,则允许WEB客户端访问WEB服务器,若分析出访问请求是攻击者发送的,则禁止WEB客户端访问WEB服务器,从而可以保障WEB服务器的安全性,防止攻击者对WEB服务器的攻击,对用户的干扰比较小,而且不需要在WEB服务器之前部署防火墙设备或者入侵检测设备等安全设备。尤其是针对WEB扫描软件来说,由于WEB扫描软件不会对WEB服务器返回的JS代码进行完整解析,因此,WEB扫描软件不会发送符合检测要求的访问请求,可以避免其访问WEB服务器,可以有效防止WEB扫描软件对WEB服务器进行内容扫描,从而阻止进一步的渗透攻击。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1