System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 防止SQL注入方法、装置、计算机设备和存储介质制造方法及图纸_技高网

防止SQL注入方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:42616052 阅读:22 留言:0更新日期:2024-09-03 18:21
本申请涉及一种防止SQL注入方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:根据初始SQL查询语句,确定用户请求参数;根据关键字替换字典,确定用户请求参数中需要进行替换的第一目标关键字,并根据第一目标关键字确定关键字替换字典中的第一目标编码转义符;根据特殊字符替换字典,确定用户请求参数中需要进行替换的第一目标特殊字符,并根据第一目标特殊字符确定特殊字符替换字典中的第二目标编码转义符;将第一目标编码转义符替换初始SQL查询语句中的第一目标关键字,以及将第二目标编码转义符替换初始SQL查询语句中的第一目标特殊字符,得到防注入SQL查询语句。采用本方法能够实现对数据库进行及时有效的保护。

【技术实现步骤摘要】

本申请涉及计算机,特别是涉及一种防止sql注入方法、装置、计算机设备、存储介质和计算机程序产品。


技术介绍

1、防sql注入主要源于网络安全领域中的一种重要且基础的安全威胁。sql注入(sqlinjection)作为一种常见的 web 应用程序安全漏洞,自互联网发展早期就已存在,并随着数据库在web应用中的广泛使用而变得尤为突出,防sql注入的方式也变得多种多样。

2、目前,防sql注入的方式主要有使用参数化查询、输入验证、最小化权限、避免动态sql 以及安全编码等。尽管它们在一定程度上能够保护数据库免受sql注入攻击,但是这些方式对原有系统的代码逻辑改动较大,往往需要投入过多的人力、物力以及时间成本,并且效率低下,无法及时对数据库进行有效的保护。


技术实现思路

1、基于此,有必要针对上述技术问题,提供一种能够节约人力、物力以及时间成本,以及及时对数据库进行有效保护的防止sql注入方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。

2、第一方面,本申请提供了一种防止sql注入方法,包括:

3、接收初始sql查询语句,根据所述初始sql查询语句,确定用户请求参数,所述用户请求参数为所述初始sql查询语句中存在sql注入风险的参数;

4、根据关键字替换字典,确定所述用户请求参数中需要进行替换的第一目标关键字,并根据所述第一目标关键字确定所述关键字替换字典中的第一目标编码转义符;

5、根据特殊字符替换字典,确定所述用户请求参数中需要进行替换的第一目标特殊字符,并根据所述第一目标特殊字符确定所述特殊字符替换字典中的第二目标编码转义符;

6、将所述第一目标编码转义符替换所述初始sql查询语句中的第一目标关键字,以及将所述第二目标编码转义符替换所述初始sql查询语句中的第一目标特殊字符,得到防注入sql查询语句。

7、第二方面,本申请还提供了一种防止sql注入装置,包括:

8、接收模块,用于接收初始sql查询语句,根据所述初始sql查询语句,确定用户请求参数,所述用户请求参数为所述初始sql查询语句中存在sql注入风险的参数;

9、第一确定模块,用于根据关键字替换字典,确定所述用户请求参数中需要进行替换的第一目标关键字,并根据所述第一目标关键字确定所述关键字替换字典中的第一目标编码转义符;

10、第二确定模块,用于根据特殊字符替换字典,确定所述用户请求参数中需要进行替换的第一目标特殊字符,并根据所述第一目标特殊字符确定所述特殊字符替换字典中的第二目标编码转义符;

11、替换模块,用于将所述第一目标编码转义符替换所述初始sql查询语句中的第一目标关键字,以及将所述第二目标编码转义符替换所述初始sql查询语句中的第一目标特殊字符,得到防注入sql查询语句。

12、第三方面,本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

13、接收初始sql查询语句,根据所述初始sql查询语句,确定用户请求参数,所述用户请求参数为所述初始sql查询语句中存在sql注入风险的参数;

14、根据关键字替换字典,确定所述用户请求参数中需要进行替换的第一目标关键字,并根据所述第一目标关键字确定所述关键字替换字典中的第一目标编码转义符;

15、根据特殊字符替换字典,确定所述用户请求参数中需要进行替换的第一目标特殊字符,并根据所述第一目标特殊字符确定所述特殊字符替换字典中的第二目标编码转义符;

16、将所述第一目标编码转义符替换所述初始sql查询语句中的第一目标关键字,以及将所述第二目标编码转义符替换所述初始sql查询语句中的第一目标特殊字符,得到防注入sql查询语句。

17、第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

18、接收初始sql查询语句,根据所述初始sql查询语句,确定用户请求参数,所述用户请求参数为所述初始sql查询语句中存在sql注入风险的参数;

19、根据关键字替换字典,确定所述用户请求参数中需要进行替换的第一目标关键字,并根据所述第一目标关键字确定所述关键字替换字典中的第一目标编码转义符;

20、根据特殊字符替换字典,确定所述用户请求参数中需要进行替换的第一目标特殊字符,并根据所述第一目标特殊字符确定所述特殊字符替换字典中的第二目标编码转义符;

21、将所述第一目标编码转义符替换所述初始sql查询语句中的第一目标关键字,以及将所述第二目标编码转义符替换所述初始sql查询语句中的第一目标特殊字符,得到防注入sql查询语句。

22、第五方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:

23、接收初始sql查询语句,根据所述初始sql查询语句,确定用户请求参数,所述用户请求参数为所述初始sql查询语句中存在sql注入风险的参数;

24、根据关键字替换字典,确定所述用户请求参数中需要进行替换的第一目标关键字,并根据所述第一目标关键字确定所述关键字替换字典中的第一目标编码转义符;

25、根据特殊字符替换字典,确定所述用户请求参数中需要进行替换的第一目标特殊字符,并根据所述第一目标特殊字符确定所述特殊字符替换字典中的第二目标编码转义符;

26、将所述第一目标编码转义符替换所述初始sql查询语句中的第一目标关键字,以及将所述第二目标编码转义符替换所述初始sql查询语句中的第一目标特殊字符,得到防注入sql查询语句。

27、上述防止sql注入方法、装置、计算机设备、存储介质和计算机程序产品,首先通过接收初始sql查询语句,根据所述初始sql查询语句,确定用户请求参数,所述用户请求参数为所述初始sql查询语句中存在sql注入风险的参数。实现集中精力对这些动态输入部分进行严格的过滤和转义处理,而不影响静态sql结构,提高了处理效率和针对性。然后通过根据关键字替换字典,确定所述用户请求参数中需要进行替换的第一目标关键字,并根据所述第一目标关键字确定所述关键字替换字典中的第一目标编码转义符。实现有效阻止基于关键字的sql注入攻击,增强了应用层面对sql注入攻击的防御能力,保证了数据和业务逻辑的安全性。接下来通过根据特殊字符替换字典,确定所述用户请求参数中需要进行替换的第一目标特殊字符,并根据所述第一目标特殊字符确定所述特殊字符替换字典中的第二目标编码转义符。实现确保特殊字符不会被解析为控制指令的一部分,避免了注入攻击利用这些字符来破坏sql语法结构,从而实现了对sql注入的全面防护。最后通过将所述第一目标编码转义符替换所述初始sql查询语句中的第一目标关键字,以及将所述第二目标编码转义符替换所述初始sql查询语句中的第一目标特殊字符,得到防本文档来自技高网...

【技术保护点】

1.一种防止SQL注入方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述根据初始SQL查询语句,确定用户请求参数,包括:

3.根据权利要求2所述的方法,其特征在于,所述根据所述第一匹配结果,从所述初始SQL查询语句白名单中筛选出用户请求参数,包括:

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:

5.根据权利要求1所述的方法,其特征在于,所述关键字替换字典记录有每个候选关键字各自对应的候选编码转义符,所述用户请求参数至少包括请求关键字;

6.根据权利要求5所述的方法,其特征在于,所述在所述用户请求参数的请求关键字中,确定与所述关键字替换字典中的候选关键字相同的第一目标关键字,包括:

7.根据权利要求1所述的方法,其特征在于,所述特殊字符替换字典记录有每个候选特殊字符各自对应的候选编码转义符,所述用户请求参数至少包括请求特殊字符;

8.根据权利要求1所述的方法,其特征在于,所述方法还包括:

9.根据权利要求8所述的方法,其特征在于,所述基于所述防注入SQL查询语句,在预设数据库中进行数据查询,得到基于所述防注入SQL查询语句的查询结果,包括:

10.根据权利要求9所述的方法,其特征在于,所述根据所述关键字替换字典,对初始输出数据进行还原处理,得到基于所述防注入SQL查询语句的查询结果,包括:

11.根据权利要求9所述的方法,其特征在于,所述根据所述特殊字符替换字典,对初始输出数据进行还原处理,得到基于所述防注入SQL查询语句的查询结果,包括:

12.一种防止SQL注入装置,其特征在于,所述装置包括:

13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法的步骤。

14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。

15.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。

...

【技术特征摘要】

1.一种防止sql注入方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述根据初始sql查询语句,确定用户请求参数,包括:

3.根据权利要求2所述的方法,其特征在于,所述根据所述第一匹配结果,从所述初始sql查询语句白名单中筛选出用户请求参数,包括:

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:

5.根据权利要求1所述的方法,其特征在于,所述关键字替换字典记录有每个候选关键字各自对应的候选编码转义符,所述用户请求参数至少包括请求关键字;

6.根据权利要求5所述的方法,其特征在于,所述在所述用户请求参数的请求关键字中,确定与所述关键字替换字典中的候选关键字相同的第一目标关键字,包括:

7.根据权利要求1所述的方法,其特征在于,所述特殊字符替换字典记录有每个候选特殊字符各自对应的候选编码转义符,所述用户请求参数至少包括请求特殊字符;

8.根据权利要求1所述的方法,其特征在于,所述方法还包括:

9.根据权利要求8所述的方法,其特征在于...

【专利技术属性】
技术研发人员:张民遐史新保
申请(专利权)人:深圳高灯云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1