访问控制方法、设备及存储介质与流程

文档序号:19346635发布日期:2019-12-06 20:55阅读:175来源:国知局
访问控制方法、设备及存储介质与流程

本公开涉及网络安全技术领域,尤其涉及访问控制方法、设备及存储介质。



背景技术:

现有web应用架构包括服务器端和客户端,客户端向服务器端发送访问请求,服务器经过处理后返回响应,客户端根据响应进行前端展示。由于客户端的所有行为均由用户控制,因此,攻击者会利用其用户的身份向服务器端发起各类恶意请求,这样就必须对客户端提交的访问请求进行过滤。现有技术中采用网络安全防护设备进行处理,但是大量的网络安全防护设备会增加网络链路的延时、访问速度慢等网络瓶颈,降低用户体验。



技术实现要素:

本公开实施例提供一种访问控制方法、设备及存储介质,能够解决现有传统网络安全防护设备产生的网络瓶颈问题。所述技术方案如下:

根据本公开实施例的第一方面,提供一种访问控制方法,该方法包括:

获取终端设备发送的访问请求;

基于lua脚本按照预设拦截规则检测访问请求是否为异常请求;

在检测到访问请求为异常请求时,拦截访问请求;

在检测到访问请求为正常请求时,根据访问请求进行相应的业务处理

基于轻量、高效的lua脚本,过滤掉恶意请求,减少服务器处理恶意请求的开销,由于采用lua脚本,无需硬件设备,可有效减少用户的初始投资,也避免了传统硬件设备由于硬件性能产生的网络瓶颈等问题,提高用户体验以及服务器的安全性。

在一个实施例中,基于lua脚本按照预设拦截规则检测访问请求是否异常请求包括:

基于lua脚本检测访问请求中是否包含恶意内容,恶意内容包括预先设置的sql语句、javascript代码、远程命令执行函数、url地址中的至少一个;

和/或,基于lua脚本统计访问请求的请求频率,检测访问请求的请求频率是否超过预设阈值;

和/或,基于lua脚本检测访问请求是否与预设黑名单匹配。

在一个实施例中,获取终端设备发送的访问请求之前,该方法还包括:

在服务器为nginx服务器时,按照处理阶段挂载的方式,在访问权限检查阶段,挂载handler模块,handler模块包括lua脚本。

在一个实施例中,获取终端设备发送的访问请求之前,该方法还包括:

在服务器为apache服务器时,采用mod_lua模块,编写lua脚本。

在一个实施例中,获取终端设备发送的访问请求之前,该方法还包括:

在服务器为tomcat服务器时,在服务连接器servlet中的过滤器filter中添加过滤访问请求的java代码,java代码用于调用lua脚本。

在一个实施例中,获取终端设备发送的访问请求之前,该方法还包括:

在web服务器为iis服务器时,编写isapi模块,isapi模块用于调用lua脚本。

在一个实施例中,在检测到访问请求为异常请求时,拦截访问请求之后,该方法还包括:

发送拒绝响应信息给终端设备。

在一个实施例中,获取终端设备发送的访问请求之前,该方法还包括:

接收终端设备发送的设置请求;

根据设置请求在管理界面制定预设拦截规则。

根据本公开实施例的第二方面,提供一种访问控制设备,访问控制设备包括处理器和存储器,存储器中存储有至少一条计算机指令,指令由处理器加载并执行以实现第一方面以及第一方面的任一实施例所描述的访问控制方法中所执行的步骤。

根据本公开实施例的第三方面,提供一种计算机可读存储介质,存储介质中存储有至少一条计算机指令,指令由处理器加载并执行以实现第一方面以及第一方面的任一实施例所描述的访问控制方法中所执行的步骤。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是本公开实施例提供的一种访问控制方法的流程图;

图2是本公开实施例提供的一种访问控制装置的结构图;

图3是本公开实施例提供的一种访问控制装置的结构图;

图4是本公开实施例提供的一种访问控制装置的结构图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

本公开实施例提供一种访问控制方法,该访问控制方法应用于服务器,如图1所示,该访问控制方法包括以下步骤:

101、获取终端设备的访问请求。

在本公开实施例中,服务器为web服务器,如nginx服务器、apache服务器(apachehttpserver)、tomcat服务器、iis服务器(internetinformationservices,互联网信息服务)。

102、基于lua脚本按照预设拦截规则检测访问请求是否为异常请求。

在本公开实施例中,步骤102包括:

基于lua脚本检测访问请求中是否包含恶意内容,恶意内容包括预先设置的sql语句、javascript代码、远程命令执行函数、url地址中的至少一个;

和/或,基于lua脚本统计访问请求的请求频率,检测访问请求的请求频率是否超过预设阈值;

和/或,基于lua脚本检测访问请求是否与预设黑名单匹配。

示例性的,基于lua脚本检测访问请求中是否包含sql(结构化查询语言,structuredquerylanguage)语句,若检测到含有sql语句,则判定该sql语句中是否与预先设置的sql语句相匹配,在匹配时,则可能为sql注入攻击,那么,该访问请求为异常请求,否则为正常请求。

又示例性的,基于lua脚本检测访问请求中是否包含javascript代码(简称js代码),若检测到含有js代码,则判定该js代码中是否与预先设置的js代码相匹配,在匹配时,则可能为xss攻击(跨站脚本攻击,crosssitescripting),那么,该访问请求为异常请求,否则为正常请求。

又示例性的,基于lua脚本检测访问请求中是否包含远程命令函数,如eval()、assert()等,若检测到含有远程命令函数,则判定该远程命令函数中是否与预先设置的远程命令函数相匹配,在匹配时,则可能为远程命令执行攻击,那么,该访问请求为异常请求,否则为正常请求。

又示例性的,基于lua脚本检测访问请求中是否包含url地址,若检测到含有url地址,则判定该远程命令函数中是否与预先设置的url地址相匹配,在匹配时,则可能为csrf(cross-siterequestforgery,跨站请求伪造)攻击,ssrf攻击,那么,该访问请求为异常请求,否则为正常请求。

又示例性的,基于lua脚本统计访问请求的请求频率,检测访问请求的请求频率是否超过预设阈值。也就是说,如果短时间内大量请求,可能为恶意爆破或网站内容爬取,则该访问请求为异常请求,否则为正常请求。

在本公开实施例中,lua脚本会提供一个特殊的url,管理员可以通过此url,登录到lua所实现的管理界面。管理员在该管理界面可以对请求的内容,请求的频率等做规则,或设置黑名单,白名单等,从而制定出一套适合服务器的拦截规则。lua脚本支持对多个检测条件组合使用,并支持复杂规则的定义,用于为各类站点提供定制化的防护体系。

103、在检测到访问请求为异常请求时,拦截访问请求。

根据步骤102所描述的,在检测到访问请求为异常请求时,拦截该访问请求。同时,服务器还可以发送拒绝响应信息给终端设备。

104、在检测到访问请求为正常请求时,根据访问请求进行相应的业务处理。

根据步骤102所描述的,在检测到访问请求为正常请求时,则按照正常的处理过程,根据访问请求进行相应的业务处理。

基于上述描述,基于lua的轻量、高效、可扩展、平台无关等特性,将其内嵌于web服务器中,让其执行于web服务器处理用户的web访问请求前,对会干扰web系统的逻辑结构或功能等恶意请求进行拦截,从而达到过滤恶意用户,增强web服务器安全性的目的。以nginx、apache、tomcat、iis这四种服务器为例,提供了内嵌lua脚本的思路,以实现上述目的。

具体包括:针对nginx服务器,采取按处理阶段挂载的方式,在访问权限检查阶段ngx_http_access_phase,挂载一个handler,采用lua脚本对用户请求进行相应的处理,识别请求中可能存在的对web服务器有恶意影响的内容,以达到在真正处理数据之前对恶意请求进行拦截的目的。其中,handler模块为nginx的模块之一,它的作用就是接受来自客户端的请求并产生输出。

针对apache服务器,采用官方模块mod_lua,编写lua脚本,对所有请求的访问进行检查,并返回body。对应返回body函数为:r:write("asinglestring")--printtoresponsebody,selfexplanatory。从而达到识别请求中可能存在的对web服务器有恶意影响的内容,以达到在真正处理数据之前对恶意请求进行拦截的目的。

针对tomcat服务器,采用servlet中的过滤器filter,以实现过滤恶意请求的目的。具体实现:在filter中添加过滤web请求的java代码,在此java代码中调用lua脚本,以识别请求中可能存在的对web服务器有恶意影响的内容,以达到在真正处理数据之前对恶意请求进行拦截的目的。

针对iis服务器,编写一个isapi的模块,在模块中调用lua脚本,以识别请求中可能存在的对web服务器有恶意影响的内容,以达到在真正处理数据之前对恶意请求进行拦截的目的。

上述内容针对4种服务器调用lua脚本的思路进行了说明,而lua脚本所实现的具体内容如下:当lua脚本识别出请求中存在对web服务器有恶意影响的内容时,即对此请求进行拦截。当lua脚本没有在请求内容中识别出存在对web服务器有恶意影响的内容时,即放行此请求。

在本公开实施例中,lua脚本会提供一个特殊的url,管理员可以通过此url,登录到lua所实现的管理界面。在管理界面,管理员可以对请求的内容(如检测到含有sql语句可能为sql注入攻击;检测到含有js代码可能为xss攻击;检测到包含远程命令执行的函数eval()、assert()等,可能为远程命令执行攻击;检测到url地址,可能为csrf,ssrf攻击),请求的频率(如短时间内大量请求,可能为恶意爆破或网站内容爬取)等做细化的拦截规则,或设置黑名单、白名单等,从而制定出一套适合此服务器的拦截规则。

本公开提供的兼具高效与兼容性的web防护方案,主要优势在于:基于轻量、高效的lua脚本,避免了传统设备由于硬件性能产生的网络瓶颈;无需硬件设备,可有效减少用户的初始投资;主动检测任意http请求,过滤掉恶意请求,减少服务器处理恶意请求的开销;支持多个检测条件组合使用,并支持复杂规则的定义,用于为各类站点提供定制化的防护体系;对不同类型服务器提供对应的防护思路,具备较高的兼容性;lua的即时编译器luajit,可以极大提高检测脚本的执行效率,愈发凸显了此方案的高效性。

本公开实施例提供的访问控制方法,获取终端设备发送的访问请求,基于lua脚本按照预设拦截规则检测访问请求是否为异常请求,在检测到访问请求为异常请求时,拦截访问请求,在检测到访问请求为正常请求时,根据访问请求进行相应的业务处理。本公开基于轻量、高效的lua脚本,过滤掉恶意请求,减少服务器处理恶意请求的开销,由于采用lua脚本,无需硬件设备,可有效减少用户的初始投资,也避免了传统硬件设备由于硬件性能产生的网络瓶颈等问题,提高用户体验以及服务器的安全性。

基于上述图1对应的实施例中所描述的访问控制方法,下述为本公开装置实施例,可以用于执行本公开方法实施例。

本公开实施例提供一种访问控制装置,如图2所示,该访问控制装置20包括:获取模块、检测模块、拦截模块和处理模块;

获取模块201,用于获取终端设备发送的访问请求;

检测模块202,用于基于lua脚本按照预设拦截规则检测访问请求是否为异常请求;

拦截模块203,用于在检测到访问请求为异常请求时,拦截访问请求;

处理模块204,用于在检测到访问请求为正常请求时,根据访问请求进行相应的业务处理。

在一个实施例中,检测模块202,用于基于lua脚本检测访问请求中是否包含恶意内容,恶意内容包括预先设置的sql语句、javascript代码、远程命令执行函数、url地址中的至少一个;

和/或,基于lua脚本统计访问请求的请求频率,检测访问请求的请求频率是否超过预设阈值;

和/或,基于lua脚本检测访问请求是否与预设黑名单匹配。

在一个实施例中,在服务器为nginx服务器时,按照处理阶段挂载的方式,在访问权限检查阶段,挂载handler模块,handler模块包括lua脚本。

在一个实施例中,在服务器为apache服务器时,采用mod_lua模块,编写lua脚本。

在一个实施例中,在服务器为tomcat服务器时,在服务连接器servlet中的过滤器filter中添加过滤访问请求的java代码,java代码用于调用lua脚本。

在一个实施例中,在web服务器为iis服务器时,编写isapi模块,isapi模块用于调用lua脚本。

在一个实施例中,如图3所示,访问控制装置20还包括:发送模块205;

发送模块205,用于在检测到访问请求为异常请求时,拦截访问请求之后,发送拒绝响应信息给终端设备。

在一个实施例中,如图4所示,访问控制装置20还包括:接收模块206和制定模块207;

接收模块206,用于接收终端设备发送的设置请求;

制定模块207,用于根据设置请求在管理界面制定预设拦截规则。

本公开实施例提供的访问控制装置,获取终端设备发送的访问请求,基于lua脚本按照预设拦截规则检测访问请求是否为异常请求,在检测到访问请求为异常请求时,拦截访问请求,在检测到访问请求为正常请求时,根据访问请求进行相应的业务处理。本公开基于轻量、高效的lua脚本,过滤掉恶意请求,减少服务器处理恶意请求的开销,由于采用lua脚本,无需硬件设备,可有效减少用户的初始投资,也避免了传统硬件设备由于硬件性能产生的网络瓶颈等问题,提高用户体验以及服务器的安全性。

本公开实施例还提供了一种访问控制设备,该访问控制设备包括接收器、发射器、存储器和处理器,该发射器和存储器分别与处理器连接,存储器中存储有至少一条计算机指令,处理器用于加载并执行至少一条计算机指令,以实现上述图1对应的实施例中所描述的访问控制方法。

基于上述图1对应的实施例中所描述的访问控制方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:readonlymemory,rom)、随机存取存储器(英文:randomaccessmemory,ram)、cd-rom、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图1对应的实施例中所描述的访问控制方法,此处不再赘述。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1