[发明专利]基于插件的结构化查询语言SQL注入检测方法和装置在审
申请号: | 201710574499.0 | 申请日: | 2017-07-14 |
公开(公告)号: | CN107358098A | 公开(公告)日: | 2017-11-17 |
发明(设计)人: | 周黎明 | 申请(专利权)人: | 北京安数云信息技术有限公司 |
主分类号: | G06F21/55 | 分类号: | G06F21/55;G06F21/57;G06F21/62 |
代理公司: | 北京创遇知识产权代理有限公司11577 | 代理人: | 李芙蓉,孙进华 |
地址: | 100085 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 插件 结构 查询 语言 sql 注入 检测 方法 装置 | ||
技术领域
本发明涉及网络信息安全技术领域,具体涉及基于插件的结构化查询语言SQL注入检测方法和装置。
背景技术
在网络安全技术领域,使用B/S(浏览器/服务器)模式进行应用开发时,若没有对客户端侧用户输入数据的合法性进行检测,则会使得应用程序存在一定的安全隐患,导致应用程序存在结构化查询语言(SQL,Structured Query Language)注入风险。
SQL是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,SQL注入防护一直是网络安全的重点。而SQL注入通过把SQL命令插入到Web表单中,或把SQL命令输入域名中或把SQL命令插入到页面请求的查询字符串中,最终达到欺骗服务器来执行恶意的SQL命令。攻击者通过SQL注入,对应用程序造成攻击,从而获得敏感信息,并且在一些情况下,还有可能导致服务器权限的丢失。因此,对于数据库系统来说,防御SQL注入相当重要,而网站管理人员对SQL注入的防御也极其重视。
目前,常见的SQL注入防御技术通常采用网络抓包的方式,也就是说将通过网络中间安全设备抓取到网络数据包,然后分析这个数据包到达服务器后可能会有什么影响。比如访问http://www.aaaa.com/a.html?1=1or 2=2,非常有可能这个a.html仅仅是一个静态页面,没有任何对数据库的操作,而对于这种访问传统的应用防火墙一定是会将其上报为SQL攻击,这就是非常明显的误报。由于对于访问的url进行解码失败、解密失败的情况,漏报也会出现。
因此目前急需一种精确的SQL注入检测方式,避免误报和的出现。
发明内容
本发明的目的在于提供基于插件的结构化查询语言SQL注入检测方法和装置,用以解决现有的SQL注入检测技术存在的误报和漏报的问题。
为实现上述目的,本发明方法包括如下步骤:
基于插件的结构化查询语言SQL注入检测方法,在全球广域网Web应用服务器上部署SQL拦截插件,Web应用服务器中执行如下SQL注入检测方法包括:
接收数据库访问请求。
获取数据库访问请求中的请求参数值,判断当前请求参数值中是否存在SQL关键字。
若当前请求参数值中存在SQL关键字,从数据库访问请求中,获取的包含SQL关键字的完整SQL语句。
提取完整SQL语句的词法,若完整SQL语句的词法与SQL查询原生语句的词法不一致,则采用SQL拦截插件在所述数据库访问请求中加入SQL拦截探针。
进一步地,数据库访问请求包含2个以上的请求参数值。
进一步地,判断当前请求参数值中是否存在SQL关键字,还包括:
若当前请求参数值中不存在SQL关键字,则获取下一个请求参数值。
进一步地,提取完整SQL语句的词法之后,还包括:
若完整SQL语句的词法与SQL查询原生语句的词法一致,则允许数据库访问请求。
进一步地,提取完整SQL语句的词法之前,还包括:
去掉完整SQL语句中的SQL关键字。
本发明还提供了基于插件的结构化查询语言SQL注入检测装置,在全球广域网Web应用服务器上部署SQL拦截插件,同时在所述Web应用服务器上部署SQL注入检测装置。
SQL注入检测装置包括接收模块、第一判断模块、第二判断模块以及拦截模块。
接收模块,用于接收数据库访问请求,将数据库访问请求送入第一判断模块。
第一判断模块,用于获取数据库访问请求中的请求参数值,判断当前请求参数值中是否存在SQL关键字,若当前请求参数值中存在SQL关键字,将数据库访问请求送入到第二判断模块。
第二判断模块,用于从数据库访问请求中,获取包含SQL关键字的完整SQL语句;判断完整SQL语句的词法与SQL查询原生语句的词法是否一致,若完整SQL语句的词法与SQL查询原生语句的词法一致,则将数据库访问请求送入到拦截模块。
拦截模块,用于采用SQL拦截插件在所述数据库访问请求中加入SQL拦截探针。
进一步地,数据库访问请求中包含两个以上请求参数值。
进一步地,第一判断模块,还用于:
判断若当前请求参数值中不存在SQL关键字,则获取下一个请求参数值。
进一步地,第二判断模块,还用于:
判断若完整SQL语句的词法与SQL查询原生语句的词法一致,则允许数据库访问请求。
进一步地,第二判断模块,还用于:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京安数云信息技术有限公司,未经北京安数云信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710574499.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种墩布收卷架
- 下一篇:一种伞骨卸料式的波纹管卷管机