一种SQL注入校验方法、服务器以及系统技术方案

技术编号:21777570 阅读:26 留言:0更新日期:2019-08-03 23:18
本发明专利技术提供一种SQL注入校验方法、服务器以及系统,通过接收请求终端对目标应用的访问请求,访问请求包含用户输入的待校验信息;对待校验信息启动校验,包括根据目标应用Java校验程序指定的外部数据库中调用groovy脚本,通过groovy脚本中定义的正则表达式,对待校验信息进行校验;根据校验结果生成与之对应的响应消息,将响应消息下发给请求终端;在后台管理员发现新的SQL注入攻击时,可以直接对数据库中的groovy脚本校验程序进行更新修改,服务器在运行SQL语句时可动态调用执行该groovy脚本,而不需要对业务代码进行重新上传发布,极大提高了针对SQL注入攻击的处理效率,便于后台管理员对应用程序的及时维护,有利于保证网络安全。

A Verification Method for SQL Injection, Server and System

【技术实现步骤摘要】
一种SQL注入校验方法、服务器以及系统
本专利技术涉及计算机网络安全
,尤其涉及一种SQL注入校验方法、服务器以及系统。
技术介绍
SQLInject,所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将恶意的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入恶意SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。比如在一个登录界面,要求输入用户名和密码:可以这样输入实现免帐号登录:用户名:‘or1=1––密码:点击登陆,如若没有做特殊处理,那么这个非法用户就很得意的登陆进去了。从理论上说,后台校验程序中会有如下的SQL语句:Stringsql="select*fromuser_tablewhereusername='"+userName+"'andpassword='"+password+"'";当输入了上面的用户名和密码,上面的SQL语句变成:SELECT*FROMuser_tableWHEREusername=”or1=1--andpassword=”分析SQL语句:条件后面username=”or1=1用户名等于”或1=1那么这个条件一定会成功;然后后面加两个--,这意味着注释,让他们不起作用,这样语句永远都能正确执行,用户轻易骗过系统,获取合法身份。SQL注入可能导致攻击者使用应用程序登陆在数据库中执行命令。如果应用程序使用特权过高的帐户连接到数据库,这种问题会变得很严重。SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库。目前业界主要防止网络攻击主要采用SQL预编译处理和用户提交参数验证的方式进行拦截。目前拦截网络攻击主要存在以下问题:拦截一般采用固定的正则表达式,用户提交了信息就进行验证,能够识别拦截大部分的异常信息,但是对于新出现的异常信息不能及时响应,需要针对新出现的攻击形式进行针对性修改代码、并在发布后才能生效,往往从时间效率上反应不及时。
技术实现思路
本专利技术提供的一种SQL注入校验方法、服务器以及系统,主要解决的技术问题是:对于新的SQL注入攻击需要修改代码,并在发布后才能生效,使得处理效率低,反映不及时。为解决上述技术问题,本专利技术提供一种SQL注入校验方法,包括:接收请求终端对目标应用的访问请求,所述访问请求包含用户输入的待校验信息;对所述待校验信息启动校验,包括根据所述目标应用Java校验程序指定的外部数据库中调用groovy脚本,通过所述groovy脚本中定义的正则表达式,对所述待校验信息进行校验;根据校验结果生成与之对应的响应消息,将所述响应消息下发给所述请求终端。可选的,所述待校验信息包括用户名。可选的,所述根据校验结果生成与之对应的响应消息包括:当所述校验结果为请求合法时,生成的响应消息包括所述访问请求正常请求的页面;当所述校验结果为请求非法时,生成的响应消息包括请求失败的提示页面。可选的,在所述将所述响应消息下发给所述请求终端之前,还包括:将所述请求失败的提示页面中的错误提示码进行隐藏处理;或者将所述错误提示码从所述请求失败的提示页面中剔除。本专利技术还提供一种服务器,包括处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的一个或者多个程序,以实现如上任一项所述的SQL注入校验方法的步骤。本专利技术还提供一种SQL注入校验系统,包括服务器以及与所述服务器通信连接的用户终端、数据库;其中,所述用户终端用于在目标应用的访问请求界面接收用户输入的待校验信息,并将所述待校验信息发送给所述服务器以实现登录;所述服务器用于接收所述待校验信息,对所述待校验信息启动校验,包括根据所述目标应用Java校验程序所指定的所述数据库中调用groovy脚本,通过所述groovy脚本中定义的正则表达式,对所述待校验信息进行校验;并根据校验结果生成与之对应的响应消息,将所述响应消息下发给所述用户终端。可选的,所述数据库用于接收后台管理员对所述groovy脚本中定义的正则表达式的更新。可选的,所述待校验信息包括用户名。可选的,所述服务器用于当所述校验结果为请求合法时,生成的响应消息包括所述访问请求正常请求的页面;当所述校验结果为请求非法时,生成的响应消息包括请求失败的提示页面。可选的,所述服务器还用于在所述将所述响应消息下发给所述请求终端之前,将所述请求失败的提示页面中的错误提示码进行隐藏处理;或者将所述错误提示码从所述请求失败的提示页面中剔除。本专利技术的有益效果是:根据本专利技术提供的一种SQL注入校验方法、服务器以及系统,通过接收请求终端对目标应用的访问请求,访问请求包含用户输入的待校验信息;对待校验信息启动校验,包括根据目标应用Java校验程序指定的外部数据库中调用groovy脚本,通过groovy脚本中定义的正则表达式,对待校验信息进行校验;根据校验结果生成与之对应的响应消息,将响应消息下发给请求终端;groovy在语法上兼具java语言和脚本语言特点,groovy支持直接读取String进行运行,这意味着当后台管理员发现新的SQL注入攻击时,可以直接对数据库中的groovy脚本校验程序进行更新修改,服务器在运行SQL语句时可动态调用执行该groovy脚本,而不需要对业务代码进行重新上传发布,极大提高了针对SQL注入攻击的处理效率,便于后台管理员对应用程序的及时维护,有利于保证网络安全。附图说明图1为本专利技术实施例一的一种SQL注入校验方法流程示意图;图2为本专利技术实施例二的服务器结构示意图;图3为本专利技术实施例三的一种SQL注入校验系统结构示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,下面通过具体实施方式结合附图对本专利技术作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。实施例一:请参见图1,图1为本实施例提供的SQL注入校验方法流程示意图,该方法主要包括如下步骤:S11、接收请求终端对目标应用的访问请求,该访问请求包含用户输入的待校验信息。用户通过客户端或者浏览器的形式,在目标应用的登录界面通过输入待校验信息,可以向该目标应用发起访问请求,包括但不限于登录请求。其中待校验信息包括用户在登录页面输入的用户名,在实际应用中,可能还包括输入的密码和/或验证码等。S12、对待校验信息启动校验,包括根据目标应用Java校验程序指定的外部数据库中调用groovy脚本,通过该groovy脚本中定义的正则表达式,对待校验信息进行校验。请求终端(userequipment,即用户终端)采集用户输入的待校验信息,并发送给WEB服务器。服务器接收到该访问请求时,解析处理,得到待校验信息,对该待校验信息启动校验。具体包括根据目标应用Java校验程序指定的外部数据库中调用groovy脚本,通过该groovy脚本中定义的正则表达式,对待校验信息进行校验。应当理解的是,对于groovy脚本需要在目标应用的校验程序中预先引入,在执行校验时,服务器本文档来自技高网
...

【技术保护点】
1.一种SQL注入校验方法,其特征在于,包括:接收请求终端对目标应用的访问请求,所述访问请求包含用户输入的待校验信息;对所述待校验信息启动校验,包括根据所述目标应用Java校验程序指定的外部数据库中调用groovy脚本,通过所述groovy脚本中定义的正则表达式,对所述待校验信息进行校验;根据校验结果生成与之对应的响应消息,将所述响应消息下发给所述请求终端。

【技术特征摘要】
1.一种SQL注入校验方法,其特征在于,包括:接收请求终端对目标应用的访问请求,所述访问请求包含用户输入的待校验信息;对所述待校验信息启动校验,包括根据所述目标应用Java校验程序指定的外部数据库中调用groovy脚本,通过所述groovy脚本中定义的正则表达式,对所述待校验信息进行校验;根据校验结果生成与之对应的响应消息,将所述响应消息下发给所述请求终端。2.如权利要求1所述的SQL注入校验方法,其特征在于,所述待校验信息包括用户名。3.如权利要求1或2所述的SQL注入校验方法,其特征在于,所述根据校验结果生成与之对应的响应消息包括:当所述校验结果为请求合法时,生成的响应消息包括所述访问请求正常请求的页面;当所述校验结果为请求非法时,生成的响应消息包括请求失败的提示页面。4.如权利要求3所述的SQL注入校验方法,其特征在于,在所述将所述响应消息下发给所述请求终端之前,还包括:将所述请求失败的提示页面中的错误提示码进行隐藏处理;或者将所述错误提示码从所述请求失败的提示页面中剔除。5.一种服务器,其特征在于,所述服务器包括处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的一个或者多个程序,以实现如权利要求1至4中任一项所述的SQL注入校验方法的步骤。6.一种...

【专利技术属性】
技术研发人员:冉茂杰谢春漆浩张坤李双文
申请(专利权)人:重庆商勤科技有限公司
类型:发明
国别省市:重庆,50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1