[发明专利]一种防御SQL注入的方法、装置及系统在审
申请号: | 201410318865.2 | 申请日: | 2014-07-04 |
公开(公告)号: | CN104123497A | 公开(公告)日: | 2014-10-29 |
发明(设计)人: | 张云海 | 申请(专利权)人: | 北京神州绿盟信息安全科技股份有限公司;北京神州绿盟科技有限公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F17/30 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 黄志华 |
地址: | 100089 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 防御 sql 注入 方法 装置 系统 | ||
1.一种防御SQL注入的方法,用于Web客户端,其特征在于,所述方法包括:
在向数据库服务器发送结构化查询语言SQL语句之前,将语义信息嵌入到所述SQL语句中,生成包含所述SQL语句和所述语义信息的提交数据,其中,所述语义信息包括与所述SQL语句对应的SQL模板和用于标记所述SQL模板的位置的起始符号和结束符号;
向数据库服务器发送所述提交数据。
2.根据权利要求1所述的方法,其特征在于,
所述SQL模板为将Web客户端源代码片段中用户输入的内容部分,用预设的变量符号代替后生成的SQL语句。
3.根据权利要求1或2所述的方法,其特征在于,
所述SQL模板已预先按照所述Web客户端的源代码编写规范嵌入至相应的源代码片段中,以使所述Web客户端在生成所述SQL语句时能够嵌入相应的SQL模板。
4.一种防御SQL注入的方法,用于中间件,其特征在于,所述方法包括:
接收Web客户端发送来的包含SQL语句和语义信息的提交数据,其中,所述语义信息包括与所述SQL语句对应的SQL模板和用于标记所述SQL模板的位置的起始符号和结束符号;
根据起始符号和结束符号提取所述提交数据中的SQL模板和SQL语句;
比对所述SQL模板的语法树与所述SQL语句的语法树中各对应位置的节点是否相同,该对应位置不包括预设变量符号所在的位置;
当比对结果为相同时,确定所述SQL语句中不存在SQL注入;
当比对结果为不相同时,确定所述SQL语句中存在SQL注入。
5.根据权利要求4所述的方法,其特征在于,
所述比对所述SQL模板的语法树与所述SQL语句的语法树中各对应位置的节点是否相同包括:
比对所述SQL模板的语法树与所述SQL语句的语法树中各对应位置的节点的字符串是否相同;或
比对所述SQL模板的语法树与所述SQL语句的语法树中各对应位置的节点的哈希值是否相同。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当确定所述SQL语句中不存在SQL注入时,将所述SQL语句提交至数据库服务器执行;
当确定所述SQL语句中存在SQL注入时,触发告警操作;并丢弃所述提交数据。
7.一种防御SQL注入的方法,用于数据库服务器,其特征在于,所述方法包括:
接收Web客户端发送来的包含SQL语句和语义信息的提交数据,其中,所述语义信息包括与所述SQL语句对应的SQL模板和用于标记所述SQL模板的位置的起始符号和结束符号;
根据起始符号和结束符号提取所述提交数据中的SQL模板和SQL语句;
比对所述SQL模板的语法树与所述SQL语句的语法树中各对应位置的节点是否相同,该对应位置不包括预设变量符号所在的位置;
当比对结果为相同时,确定所述SQL语句中不存在SQL注入;
当比对结果为不相同时,确定所述SQL语句中存在SQL注入。
8.根据权利要求7所述的方法,其特征在于,
所述比对所述SQL模板的语法树与所述SQL语句的语法树中各对应位置的节点是否相同包括:
比对所述SQL模板的语法树与所述SQL语句的语法树中各对应位置的节点的字符串是否相同;或
比对所述SQL模板的语法树与所述SQL语句的语法树中各对应位置的节点的哈希值是否相同。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
当确定所述SQL语句中不存在SQL注入时,执行所述SQL语句;
当确定所述SQL语句中存在SQL注入时,触发告警操作;并丢弃所述提交数据。
10.一种防御SQL注入的装置,用于Web客户端,其特征在于,所述装置包括:
语义信息嵌入模块,用于在向数据库服务器发送结构化查询语言SQL语句之前,将语义信息嵌入到所述SQL语句中,生成包含所述SQL语句和所述语义信息的提交数据,其中,所述语义信息包括与所述SQL语句对应的SQL模板和用于标记所述SQL模板的位置的起始符号和结束符号;
发送模块,用于向数据库服务器发送所述提交数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京神州绿盟信息安全科技股份有限公司;北京神州绿盟科技有限公司,未经北京神州绿盟信息安全科技股份有限公司;北京神州绿盟科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410318865.2/1.html,转载请声明来源钻瓜专利网。