[发明专利]一种sql注入检测方法及装置有效
申请号: | 201310541430.X | 申请日: | 2013-11-05 |
公开(公告)号: | CN103559444B | 公开(公告)日: | 2017-08-04 |
发明(设计)人: | 石祖文 | 申请(专利权)人: | 星云融创(北京)科技有限公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F17/30;G06F17/27 |
代理公司: | 北京英赛嘉华知识产权代理有限责任公司11204 | 代理人: | 王达佐,马晓亚 |
地址: | 100080 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sql 注入 检测 方法 装置 | ||
技术领域
本发明涉及网络安全技术领域,特别涉及一种sql注入检测方法及装置。
背景技术
黑客在入侵网站的时候经常会利用sql(structure query language,结构化查询语言)注入漏洞执行各种非法数据库操作,比如盗取敏感信息、获取系统管理权限等。传统WAF(Web Application Firewall,Web应用防火墙)在过滤sql注入攻击时通常采用正则表达式进行sql注入匹配,或者直接进行sql语法关键词查找。
采用正则表达式进行匹配或者直接进行sql语法关键词查找时,往往需要匹配完整个用户提交的数据后才能进行拦截,这样会导致执行效率比较低。
另外,正则表达式由于不具备上下文分析能力,因此当用户通过post方式提交一篇包含sql关键字的文章时就可能进行误报拦截,而这有可能只是普通用户发表的一篇带有“select”关键词的技术文章而已。例如,对于如下的http请求,“http://foo.com/?id=l+foo+union+select+a+from+b”,传统WAF会拦截并认为是sql注入行为,而实际上该http请求并非一个sql注入攻击。
可见,现有的sql注入检测方法不仅执行效率比较差,而且容易引起各种误报,把正常的http(hypertext transfer protocol,超文本传输协议)访问也拦截了。
发明内容
有鉴于此,本发明的目的是提供一种sql注入检测方法及装置,用以提高sql注入检测的执行效率,并降低sql注入检测的误报率。
为实现上述目的,本发明提供技术方案如下:
一种sql注入检测方法,包括:
从http请求中提取http参数;
将提取到的每个http参数分别与预定义的各种动态sql模板组合成sql语句;
分别对每个sql语句进行语法分析,若该sql语句不符合sql语法规则,则确定该http参数不会导致sql注入攻击,若该sql语句符合sql语法规则,则输出与该sql语句对应的标记字符串;
将所述标记字符串与具有sql注入攻击特征的标记字符串集合进行匹配,若匹配成功,则确定该http请求为sql注入攻击。
上述的sql注入检测方法,其中,还包括:若所有标记字符串均匹配失败,则确定该http请求不是sql注入攻击。
上述的sql注入检测方法,其中,所述http参数包括:url参数、cookie数据和表单数据。
上述的sql注入检测方法,其中,所述将提取到的每个http参数分别与预定义的各种动态sql模板组合成sql语句,包括:
将http参数作为变量值传入到动态sql模块的变量中,从而得到组合后的sql语句。
上述的sql注入检测方法,其中,所述将http参数作为变量值传入到动态sql模块的变量中,包括:
将http参数分别以数字型变量值和字符型变量值传入到动态sql模块的变量中。
一种sql注入检测装置,包括:
http参数提取单元,用于从http请求中提取http参数;
sql语句组合单元,用于将提取到的每个http参数分别与预定义的各种动态sql模板组合成sql语句;
sql语法分析单元,用于分别对每个sql语句进行语法分析,若该sql语句不符合sql语法规则,则确定该http参数不会导致sql注入攻击,若该sql语句符合sql语法规则,则输出与该sql语句对应的标记字符串;
标记字符串匹配单元,用于将所述标记字符串与具有sql注入攻击特征的标记字符串集合进行匹配,若匹配成功,则确定该http请求为sql注入攻击。
上述的sql注入检测装置,其中,所述标记字符串匹配单元进一步用于:若所有标记字符串均匹配失败,则确定该http请求不是sql注入攻击。
上述的sql注入检测装置,其中,所述http参数包括:url参数、cookie数据和表单数据。
上述的sql注入检测装置,其中,所述sql语句组合单元进一步用于:将http参数作为变量值传入到动态sql模块的变量中,从而得到组合后的sql语句。
上述述的sql注入检测装置,其中,所述sql语句组合单元进一步用于:将http参数分别以数字型变量值和字符型变量值传入到动态sql模块的变量中,得到对应的sql语句。
与现有技术相比,本发明的有益效果如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于星云融创(北京)科技有限公司,未经星云融创(北京)科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310541430.X/2.html,转载请声明来源钻瓜专利网。