[发明专利]一种SQL注入防御的方法和系统有效
申请号: | 201310296901.5 | 申请日: | 2013-07-16 |
公开(公告)号: | CN103338208A | 公开(公告)日: | 2013-10-02 |
发明(设计)人: | 王志强 | 申请(专利权)人: | 五八同城信息技术有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 北京律恒立业知识产权代理事务所(特殊普通合伙) 11416 | 代理人: | 顾珊;蔡艳园 |
地址: | 300457 天津市滨海新区第一*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sql 注入 防御 方法 系统 | ||
技术领域
本发明涉及计算机网络信息安全防护领域,特别涉及一种改进的SQL注入防御的方法和系统。
背景技术
随着Web应用以及浏览器/服务器(B/S)模式应用的普及,Web应用程序的安全性问题也日益受到关注。SQL注入攻击是最为常见的Web应用程序攻击技术,SQL注入攻击所带来的安全破坏也是不可弥补的。所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造或者影响动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。
SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方面:不当的类型处理;不安全的数据库配置;不合理的查询集处理;不当的错误处理;转义字符处理不合适;和多个提交处理不当。目前,现有常见的SQL注入防御技术是关键词方法,即检测用户提交的SQL语句中的关键字。这种方法虽然简单,但是有两个大的问题。一个是关键字漏判的问题,根据SQL语句的灵活性,有经验的攻击者很容易绕过服务器侧预设的关键字进行攻击,降低了SQL注入检测的准确性。二是误判关键字的问题。关键词方法的误报率很高,尤其是一些外文的网站,用户提交大段的英文后,很容易匹配上预设的关键字。
另外一种改进的SQL注入防御技术称为知识库方法。即在安全环境下学习合法的SQL语句,建立合法SQL语句知识库,当服务器检测到用户提交的SQL语句与知识库中合法SQL语句不匹配时,则判定存在SQL注入企图。这种方法基于已知的安全SQL,但受限于SQL的完整性,其缺点在于不仅需要“充分”的SQL供系统学习已知的SQL语法树,而如何定义“充分”是很难的。如果需要大量的学习达到所谓“充分”的标准,则学习成本和执行效率都会受到严重的影响。另外,知识库方法不能穷举所有的SQL语法树,因此也就不能避免误报。目前只能通过需要不断更新合法SQL语句知识库来减少误报的发生,非常繁琐,效率很低。
因此,需要一种能有效的SQL注入防御技术能够解决上述问题,快速高效地识别SQL注入。
发明内容
本发明的目的在于提供一种针对数据库的SQL注入防御的方法,所述方法包括如下步骤:(a)接收来自应用系统发出的访问数据库的SQL语句;(b)对SQL语句进行注入判断和检查,若发现SQL注入,则对该SQL注入进行拦截,记录错误,并向所述应用系统返回异常消息;若发现并非为SQL注入,则查询出该SQL语句所需要访问的相应数据库操作的接口规范,拼接出符合该数据库操作接口规范的SQL语句;(c)将步骤(b)拼接出的规范的SQL语句发送到相应的数据库进行数据库操作;和(d)将查询后的结果返回给应用系统。
优选地,所述应用系统是客户端/服务器或浏览器/服务器模式。
优选地,所述应用系统是客户端/服务器或浏览器/服务器模式。
优选地,为所述应用系统提供的数据库操作类型包括选择、插入、更新和删除。
优选地,所述数据库操作的接口规范包括数据库操作接口所接受的数据库、表、合法语法格式。
优选地,所述对SQL语句进行注入判断和检查基于如下规范:(a)当前数据库操作接口允许操作的数据库、表;(b)当前数据库操作接口的子句中的语法规则;以及(c)当前数据库操作接口的子句中的语义规则。
优选地,所述规范(b)中的语法规则是将SQL子句转化成转码字符的序列从而构造语法转码表。
优选地,对所述转换码后的字符进行逐字符的扫描以判断是否为SQL注入。
优选地,判断所扫描的字符是否是数字、单引号、双引号、关键字符或空格中的任意一者。
优选地,所述步骤(b)的拼接是针对选择、插入、更新和删除四种数据库操作分别进行的拼接。
根据本发明的方法设置数据库代理服务器,用运维手段切断除了数据库代理服务器以外的任何应用系统对数据库的访问权限,提高了数据库访问的安全性,防止了SQL注入。
应当理解,前述大体的描述和后续详尽的描述均为示例性说明和解释,并不应当用作对本发明所要求保护内容的限制。
附图说明
参考随附的附图,本发明更多的目的、功能和优点将通过本发明实施方式的如下描述得以阐明,其中:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于五八同城信息技术有限公司,未经五八同城信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310296901.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种防霉抑菌的儿童服装
- 下一篇:全手卷雪茄烟支切刀装置