专利名称:一种防注入方法及系统的制作方法
技术领域:
本发明涉及软件技术领域,特别是一种防注入方法及系统。
背景技术:
目前对于结构化查询语言(SQL)防注入的方法中,用户通常使用的为设置反向代理,所述设置反向代理的方法就是通过反向代理技术,对网站的请求进行截取,然后再请求达到网站之前进行处理,这样降低了网站受到攻击的可能性,并且减轻了网站本身的负载,更有甚者,使用内核模块专用在内核态抓包,然后再传到用户态进行包的组装,最后用反向代理的机制,进行包的处理,然后再从用户态回到内核态,对包所对应的连接进行处理,这样的话,就需要在用户态和内核态之间频繁切换,不可避免的会带来较多的上下文切换,因此,会带来系统的性能的极大损耗。
发明内容
本发明所要解决的问题是提供一种防注入方法及系统,解决了现有技术中在用户态和内核态之间频繁切换,就会带来较多的上下文切换,从而给系统性能带来下降的问题。一种防注入方法,所述方法应用于内核态环境下,包括接收数据包,其中,每个数据包对应每个网络连接;将所述接收的数据包中相同网络连接的数据包组合成一个完整的数据包并进行存储;判断所述完整的数据包是否符合预设的注入规则,如果是,则发生了注入,如果否,则没有发生注入。优选地,在所述将所述每个网络连接对应的每个数据包集合中的各个数据包组合成一个完整的数据包并进行存储之后,判断所述完整的数据包是否符合预设的注入规则之前还包括对所述完整数据包进行处理,得到所述完整数据包的参数,其中,所述参数包括源IP地址、源端口地址、目的IP地址及目的端口地址;利用所述完整数据包的参数创建哈希列表;通过查找所述哈希列表,得到所述完整数据包的数据信息。优选地,所述对所述完整数据包进行处理的过程包括将所述完整数据包通过hook函数处理。优选地,还包括当发生攻击时,向所述源IP地址发送一个阻断页面,并向所述目的IP地址发送攻击响应数据。一种防注入系统,所述系统包括接收模块、组合模块和判断模块;所述接收模块用于,接收数据包,其中,每个数据包对应每个网络连接;
所述组合模块用于,将所述接收的数据包中相同网络连接的数据包组合成一个完整的数据包并进行存储;所述判断模块用于,判断所述完整的数据包是否符合预设的注入规则,如果是,则发生了注入,如果否,则没有发生注入。优选地,还包括处理模块;所述处理模块用于,对所述完整数据包进行处理,得到所述完整数据包的参数,其中,所述参数包括源IP地址、源端口地址、目的IP地址及目的端口地址。优选地,还包括创建模块和查询模块;所述创建模块用于,利用所述完整数据包的参数创建哈希列表;所述查询模块用于,通过查找所述哈希列表,得到所述完整数据包的数据信息。 从以上技术方案可以看出,本发明提供了一种防注入方法及系统,所述方法包括接收数据包,其中,每个数据包合对应每个网络连接,将所述接收的数据包中相同网络连接的数据包组合成一个完整的数据包并进行存储,判断所述完整的数据包是否符合预设注入规则,如果是,则发生注入,如果否,则没有发生注入,所述方法实现在纯内核态的环境下,不必使用上下文切换,就可以实现对SQL防注入进行了判断,提高了系统的性能。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为本发明实施例一公开的一种防注入方法流程示意图;图2为本发明实施例二公开的一种防注入方法流程示意图;图3为本发明实施例五公开的一种防注入系统结构示意图;图4为本发明实施例六公开的一种防注入系统结构示意图。
具体实施例方式下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。本发明实施例一公开了一种防注入方法,参见图I所示,所述方法应用于内核态环境下,步骤包括步骤SlOl :接收数据包,其中,每个数据包对应每个网络连接;步骤S102 :将所述接收的数据包中相同网络连接的数据包组合成一个完整的数据包并进行存储;步骤S103 :判断所述完整的数据包是否符合预设的注入规则,如果是,执行步骤S104,如果否,执行步骤S105 ;步骤S104 :则发生了注入;
步骤S105 :则没有发生注入。其中,所述预设的注入规则可以为用户在浏览器里输入http://WWW.baidu.com select*from a where c=d,这个问号后面的东西就是SQL注入了,我们会根据此注入规则去做验证。本实施例公开了一种防注入方法,所述方法包括接收数据包,其中,每个数据包合对应每个网络连接,将所述接收的数据包中相同网络连接的数据包组合成一个完整的数据包并进行存储,判断所述完整的数据包是否符合预设注入规则,如果是,则发生注入,如果否,则没有发生注入,所述方法实现在纯内核态的环境下,不必使用上下文切换,就可以实现对SQL防注入进行了判断,提高了系统的性能。本发明实施例二公开了一种防注入方法,参见图2所示,所述方法包括步骤S201 :接收数据包,其中,每个数据包对应每个网络连接;
步骤S202 :将所述接收的数据包中相同网络连接的数据包组合成一个完整的数据包并进行存储;步骤S203 :对所述完整数据包进行处理,得到所述完整数据包的参数;其中,对所述完整数据包的处理使用了 hook函数,得到所述完整数据包的四个参数值源IP、源端口地址、目的IP及目的端口地址;步骤S204 :利用所述完整数据包的参数创建哈希列表;其中,利用所述完整数据包的四个参数值源IP、源端口地址、目的IP及目的端口地址,按照TCP/IP的四元组来规划一个基于开放式地址的哈希列表;步骤S205 :通过查找所述哈希列表,得到所述完整数据包的数据信息;步骤S206 :判断所述完整的数据包是否符合预设的注入规则,如果是,执行步骤S207,如果否,执行步骤S208 ;步骤S207 :则发生了注入;步骤S208 :则没有发生注入;步骤S209 :判断所述注入的数据包是否为攻击数据包,如果是,执行步骤S210,如果否,执行步骤S211 ;步骤S210 :向所述源IP地址发送一个阻断页面,并向所述目的IP地址发送攻击响应数据;步骤S211:结束。本实施例公开了一种防注入方法,所述方法在实施例一的基础上,判断所述注入数据包是否为攻击数据包,如果是,进行了相应的处理,即向所述源IP地址发送一个阻断页面,并向所述目的IP地址发送攻击响应数据,要求阻断连接,减免了数据信息外泄的可能,另外,按照TCP/IP的四元组规划了一个基于开放式地址的哈希列表,其中,TCP协议是工作在七层协议的传输层,是面向连接、基于字节流的协议,对效率和传输的准确性均有很好的支持,而且创建哈希表可以方便并快捷的得到所述数据信息。本发明实施例三公开了一种列车定位系统,参见图3所示,所述系统包括接收模块101、组合模块102和判断模块103 ;所述接收模块101用于,接收数据包,其中,每个数据包对应每个网络连接;所述组合模块102用于,将所述接收的数据包中相同网络连接的数据包组合成一个完整的数据包并进行存储;所述判断模块103用于,判断所述完整的数据包是否符合预设的注入规则,如果是,则发生了注入,如果否,则没有发生注入。其中,所述预设的注入规则可以为用户在浏览器里输入http://WWW.baidu.com select*from a where c=d,这个问号后面的东西就是SQL注入了,我们会根据此注入规则去做验证。本实施例公开了一种防注入系统,所述系统包括接收模块、组合模块和判断模块,所述接收模块用于,接收数据包,其中,每个数据包对应每个网络连接,所述组合模块用于,将所述接收的数据包中相同网络连接的数据包组合成一个完整的数据包并进行存储, 所述判断模块用于,判断所述完整的数据包是否符合预设的注入规则,如果是,则发生了注入,如果否,则没有发生注入,所述系统应用在纯内核态的环境下,不必在内核态和用户态之间频繁切换,因此,提高了系统的性能。本发明实施例四公开了一种列车定位系统,参见图4所示,所述处理模块104、创建模块105和查询模块106 ;所述处理模块104用于,对所述完整数据包进行处理,得到所述完整数据包的参数,其中,所述参数包括源IP地址、源端口地址、目的IP地址及目的端口地址;其中,所述处理模块,对所述完整数据包使用了 hook函数进行处理,得到所述完整数据包的四个参数值源IP、源端口地址、目的IP及目的端口地址;所述创建模块105用于,利用所述完整数据包的参数创建哈希列表;其中,所述创建模块,利用所述完整数据包的四个参数值源IP、源端口地址、目的IP及目的端口地址,按照TCP/IP的四元组来规划一个基于开放式地址的哈希列表;所述查询模块106用于,通过查找所述哈希列表,得到所述完整数据包的数据信肩、O本实施例在实施例三的基础上,增加了处理模块、创建模块和查询模块,所述处理模块对所述完整数据包使用hook函数处理,得到所述完整数据包的四个参数值,所述创建模块利用所述四个参数值创建了哈希列表,所述查询模块可以利用所述哈希列表查找到所述完整数据包的数据信息,通过创建哈希列表,可以方便快捷的得到需要查找的数据包的数据信息。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽范围。
权利要求
1.一种防注入方法,其特征在于,所述方法应用于内核态环境下,包括 接收数据包,其中,每个数据包对应每个网络连接; 将所述接收的数据包中相同网络连接的数据包组合成一个完整的数据包并进行存储; 判断所述完整的数据包是否符合预设的注入规则,如果是,则发生了注入,如果否,则没有发生注入。
2.根据权利要求I所述的方法,其特征在于,在所述将所述每个网络连接对应的每个数据包集合中的各个数据包组合成一个完整的数据包并进行存储之后,判断所述完整的数据包是否符合预设的注入规则之前还包括 对所述完整数据包进行处理,得到所述完整数据包的参数,其中,所述参数包括源IP地址、源端口地址、目的IP地址及目的端口地址; 利用所述完整数据包的参数创建哈希列表; 通过查找所述哈希列表,得到所述完整数据包的数据信息。
3.根据权利要求2所述的方法,其特征在于,所述对所述完整数据包进行处理的过程包括 将所述完整数据包通过hook函数处理。
4.根据权利要求2所述的方法,其特征在于,还包括 判断所述注入数据包是否为攻击数据包,如果是,向所述源IP地址发送一个阻断页面,并向所述目的IP地址发送攻击响应数据,如果否,结束。
5.一种防注入系统,其特征在于,所述系统包括接收模块、组合模块和判断模块; 所述接收模块用于,接收数据包,其中,每个数据包对应每个网络连接; 所述组合模块用于,将所述接收的数据包中相同网络连接的数据包组合成一个完整的数据包并进行存储; 所述判断模块用于,判断所述完整的数据包是否符合预设的注入规则,如果是,则发生了注入,如果否,则没有发生注入。
6.根据权利要求5所述的系统,其特征在于,还包括处理模块; 所述处理模块用于,对所述完整数据包进行处理,得到所述完整数据包的参数,其中,所述参数包括源IP地址、源端口地址、目的IP地址及目的端口地址。
7.根据权利要求6所述的系统,其特征在于,还包括创建模块和查询模块; 所述创建模块用于,利用所述完整数据包的参数创建哈希列表; 所述查询模块用于,通过查找所述哈希列表,得到所述完整数据包的数据信息。
全文摘要
本发明公开了一种防注入方法及系统,所述方法包括接收数据包,其中,每个数据包合对应每个网络连接,将所述接收的数据包中相同网络连接的数据包组合成一个完整的数据包并进行存储,判断所述完整的数据包是否符合预设注入规则,如果是,则发生注入,如果否,则没有发生注入,所述方法应用于系统中,实现在纯内核态的环境下,不必使用上下文切换,就可以实现对SQL防注入进行了判断,提高了系统的性能。
文档编号H04L29/06GK102968578SQ20121042418
公开日2013年3月13日 申请日期2012年10月30日 优先权日2012年10月30日
发明者张权, 刘鹏, 张涛, 张青, 陆国祥 申请人:山东中创软件商用中间件股份有限公司