基于语义分析的智能防sql注入方法_3

文档序号:8395938阅读:来源:国知局
束后,根据有害池中的有害字符串条数,判断请求是否有害,若有害条数大于等于1,则请求有害。这样能够是基于.NET Framework 4.0顺利开发与运行,防止恶意SQL代码破坏数据库数据。同时,本发明的一大亮点是可以进行语义分析,其中用到两个语法分析器,两个语法分析器的 DLL 分别是,Microsoft.Data.Schema.ScriptDom.dll 和 Microsoft.Data.Schema.ScriptDom.Sql.dll。Microsoft.Data.Schema.ScriptDom.Sql 命名空间提供Microsoft SQL Server专用的分析器和脚本生成器支持。引入这个命名空间后,就可以调用TSqllOOParser判断字符串是否为合法的SQL语句,但TSqllOOParser仅仅能判断完整的SQL语句,因此在调用TSqllOOParser前,必须把数据处理成完整的SQL语句。
[0030]通过上述的文字表述可以看出,采用本发明后,处理期间能够拥有自己的请求,不会阻塞系统的请求。同时,安全性更高,能够对提交过来的cookie数据也进行过滤,不会给黑客留下可趁之机。更为重要的是,能够从源头上杜绝SQL注入性攻击。并且,实施本发明的接入组件简单易用,接入方便。再者,能够给出有害信息的详细说明,包括哪些参数是有问题的、危害严重程度和请求被停止的原因,便于人员介入现场进行处理。
【主权项】
1.基于语义分析的智能防SQL注入方法,其特征在于:首先,对来自网页的所有请求进行数据拦截或是数据提取,所述的数据出现为字符串,之后将提取到的数据送入安全中心进行处理并返回结果,若数据有害,则跳转到ShowErr页面,若数据无害,则继续进行正常请求,所述的数据拦截为,通过Global, asax拦截所有的请求,所述的数据提取为,提取querystring、form、cookie中的数据,之后,替换掉其中的转义字符,根据预设判断规则按顺序逐条检查,判断这些数据是否有害。
2.根据权利要求1所述的基于语义分析的智能防SQL注入方法,其特征在于:根据预设判断规则按顺序逐条检查过程为,首先,通过判断字符串是否为完整的SQL语句;之后,判断字符串是否为部分的SQL语句;接着,判断字符串是否为数字型的SQL语句;最后,判断字符串是否为逻辑短路型的SQL语句。
3.根据权利要求2所述的基于语义分析的智能防SQL注入方法,其特征在于:通过判断字符串是否为完整的SQL语句的处理流程为, 步骤①,判断字符串中“一”的位置,然后截取“一”之前的字符串,不包括“一”,将方括号“[”和“]”替换为空格; 步骤②,以空格拆分,若拆分的数组长度小于3,则为无害结束,反之则为有害,继续运行; 步骤③,去除多个空格,再次以空格拆分,若拆分的数组长度小于3,则为无害结束,反之则为有害,继续运行,若拆分的数组等于3时,处理误拦截情况; 步骤④,采用TSqllOOParser判断字符串是否为合法的SQL语句。
4.根据权利要求2所述的基于语义分析的智能防SQL注入方法,其特征在于:所述的判断字符串是否为部分的SQL语句的处理流程为, 步骤①,判断输入字符串长度是否小于3,若小于,则为无害结束,反之,则为有害,继续运行; 步骤②,去掉最后的空格,然后判断是否为“’ ”号结尾,既取出第一个“’ ”的位置,然后取出最后一个“’ ”号的位置,若位置相同,则无害结束,反之,则为有害,继续运行; 步骤③,给输入的字符串前面加入内容为,SELECT * FROM USERS WHERE ID=的部分SQL语句,用TSqllOOParser判断字符串是否为合法的SQL语句。
5.根据权利要求2所述的基于语义分析的智能防SQL注入方法,其特征在于:所述的判断字符串是否为数字型的SQL语句的处理流程为, 步骤①,判断输入字符串长度是否小于5,若是,则为无害结束,反之,则为有害,继续运行; 步骤②,去掉两端空格,以空格拆分,若拆分的数组长度小于3,则为无害结束,反之有害,则继续运行; 步骤③,判断第一个空格前面的字符串是否可转换成Double类型,若是,则给输入的字符串前面加入部分SQL语句,用TSqllOOParser判断字符串是否为合法的SQL语句,若不是则判断第一个;号前面的字符串是否已转换成Double类型,若是,则给输入的字符串前面加入部分SQL语句,用TSqllOOParser判断字符串是否为合法的SQL语句,若不是,则无害结束。
6.根据权利要求2所述的基于语义分析的智能防SQL注入方法,其特征在于:所述的判断字符串是否为逻辑短路型的SQL语句的处理流程为, 步骤①,判断字符串中是否有单引号,若有,则继续,若没有,则结束; 步骤②,判断是否只有一个单引号,若不是,则继续,若是,则结束; 步骤③,以第一个单引号为界,把字符串分割成两个部分,剔除第二部分任何单引号,将把第一部分和第二部分合并,构成新的字符串; 步骤④,在新的字符串前面加入部分SQL语句,采用TSql 10Parser判断字符串是否为合法的SQL语句,若是,则为有害,将该条字符串放入有害池当中,处理下一条字符串;若不是,则无害返回,处理下一条字符串,当最后一条字符串处理完成时,检查有害池中的有害字符串条数,返回处理结果。
7.根据权利要求2所述的基于语义分析的智能防SQL注入方法,其特征在于:所述的判断字符串是否为逻辑短路型的SQL语句的处理流程为, 步骤①,判断字符串中是否有单引号,若有,则继续,若无,则结束; 步骤②,判断是否只有一个单引号,若不是,则继续,若是,则结束; 步骤③,设第一个单引号为界,将字符串分割成两个部分,剔除第二部分任何单引号后,将第一部分和第二部分合并; 步骤④,在合并后的字符串前面加入部分SQL语句,用TSqllOOParser判断字符串是否为合法的SQL语句,如若不是,则无害结束,若是,则将该条字符串放入有害池当中,处理下一条字符串,当处理的是最后一字符串时,将字符串发到有害池中,并根据有害池里有害字符串的数目,返回处理结果。
8.根据权利要求1所述的基于语义分析的智能防SQL注入方法,其特征在于:所述的返回结果中含有结果类,结果类中包含出问题的参数和停止原因,所述出问题的参数至少包括是否有害和危害程度,所述的危害程度包括有,请求有害,接下来所有进一步的处理必须停止,以及,请求有害,但能进一步的处理能持续。
【专利摘要】本发明涉及一种基于语义分析的智能防SQL注入方法,其特点是:对来自网页的所有请求进行数据拦截或是数据提取,将提取到的数据送入安全中心进行处理并返回结果,同时,根据预设判断规则按顺序逐条检查,判断这些数据是否有害。由此,能够拥有自己的请求,不会阻塞系统的请求。同时,安全性更高,能够对提交过来的cookie数据也进行过滤,不会给黑客留下可趁之机。更为重要的是,能够从源头上杜绝SQL注入性攻击。并且,实施本发明的接入组件简单易用,接入方便,便于人员介入现场进行处理。
【IPC分类】G06F17-30
【公开号】CN104715018
【申请号】CN201510057370
【发明人】王专, 吴志祥, 吴剑, 张海龙, 马和平, 郭凤林, 沈健, 郝彦清, 靳彩娟
【申请人】同程网络科技股份有限公司
【公开日】2015年6月17日
【申请日】2015年2月4日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1