System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 结构化查询语言SQL防御的方法、系统以及计算设备技术方案_技高网

结构化查询语言SQL防御的方法、系统以及计算设备技术方案

技术编号:43993825 阅读:4 留言:0更新日期:2025-01-10 20:13
一种SQL防御的方法、系统以及计算设备,该方法包括:SQL防御规则配置单元通过统一的入口为多个SQL引擎配置对应的SQL防御规则,每个SQL防御规则中包括生效的SQL引擎以及对应的执行动作,多个SQL引擎对应的SQL防御规则的格式相同;SQL防御规则配置单元根据每个SQL防御规则中生效的SQL引擎,将配置的SQL防御规则分别发送给对应的SQL引擎,以便于SQL引擎根据获得的SQL防御规则对接收到的SQL语句进行防御。该方法能够增强SQL防御的灵活性和可扩展性。

【技术实现步骤摘要】

本申请涉及数据库领域,并且更具体地,涉及一种结构化查询语言sql防御的方法、系统以及计算设备。


技术介绍

1、在当前的结构化查询语言(structured query language,sql)引擎中,通过执行用户的sql语句为用户提供数据查询服务。随着技术的发展,sql引擎层出不穷,在带给我们解决方案多样性的同时,也暴露出一定的问题,比如用户输入的sql语句的质量良莠不齐,低质量的sql语句会给平台或系统带来的不可预料的冲击。对于大sql语句或烂sql语句会造成系统的瘫痪,导致服务不可用。对于慢sql语句会影响系统的稳定性,主要表现是服务器线程池被占满,造成雪崩效应,其它正常sql无法正常执行,出现系统假死现象。

2、相关的技术方案中,通过业务层对sql语句进行解析和防御,一方面,由于在业务层中对sql语句进行解析判断,需要改造业务层的业务流程。另一方面,由于在业务层中需要对sql语句进行解析判断,对于符合要求的sql语句需要发送给sql引擎,sql引擎在对sql语句进行处理时,还需要对sql语句再次进行解析,性能损耗较高。另一方面,每个sql引擎各自针对自己的sql语法进行sql语句的解析和防御,这样不仅灵活性差,可扩展性也较差,sql语法的通用性不足。

3、因此,如何增强sql防御的灵活性和可扩展性成为亟需要解决的技术问题。


技术实现思路

1、本申请提供一种结构化查询语言sql防御的方法、系统以及计算设备,该方法能够增强sql防御的灵活性和可扩展性。</p>

2、第一方面,提供了一种结构化查询语言sql防御的方法,该方法应用于sql防御系统,该sql防御系统包括sql防御规则配置单元和多个sql引擎,该方法包括:该sql防御规则配置单元通过统一的入口为该多个sql引擎配置对应的sql防御规则,每个该sql防御规则中包括生效的sql引擎以及对应的执行动作,该多个sql引擎对应的sql防御规则的格式相同;该sql防御规则配置单元根据每个该sql防御规则中生效的sql引擎,将配置的sql防御规则分别发送给对应的sql引擎,以便于该sql引擎根据获得的sql防御规则对接收到的sql语句进行防御。

3、上述技术方案中,通过一个统一的入口为多个sql引擎配置并下发格式相同的sql防御规则,由sql引擎基于获得的sql防御规则对接收到的sql语句进行防御。这样,一方面,业务层不需要对sql语句进行解析,直接在sql引擎对sql语句进行解析和防御,性能损耗较较低。另一方面,由于可以为多个sql引擎配置sql防御规则,并且sql防御规则的格式相同,增强了灵活性、可扩展性以及sql语法的通用性。

4、结合第一方面,在第一方面的某些实现方式中,该多个sql引擎包括第一sql引擎,该方法还包括:该第一sql引擎从该sql防御规则配置单元获取对应的至少一个sql防御规则,该至少一个sql防御规则包括第一sql防御规则;该第一sql引擎从业务层接收到第一sql语句;该第一sql引擎根据该第一sql语句满足该第一sql防御规则,执行该第一sql防御规则中的动作。

5、上述技术方案中,sql引擎可以自主对sql语句进行防御,避免低质量的sql语句对大数据分析处理平台或数据库造成的不可预料的冲击,使得防御更加准确。并且,由于在sql引擎直接对sql语句先进行解析,在业务层不需要对sql语句进行解析,使得性能损耗较低,业务层无改造,易实施落地。

6、结合第一方面,在第一方面的某些实现方式中,该sql防御规则配置单元根据每个该sql防御规则中生效的sql引擎,在加载周期内自动将配置的sql防御规则分别发送给对应的sql引擎。

7、上述技术方案中,在加载周期内自动将配置的sql防御规则分别发送给对应的sql引擎,这样,sql引擎可以在加载周期内自动加载sql防御规则,而不需要重启sql引擎,也不需要中断业务。

8、结合第一方面,在第一方面的某些实现方式中,该sql防御规则包括提示类的sql防御规则、拦截类的sql防御规则、熔断类的sql防御规则。

9、结合第一方面,在第一方面的某些实现方式中,第一sql防御规则为该提示类的sql防御规则,该第一sql引擎继续执行该第一sql语句。

10、结合第一方面,在第一方面的某些实现方式中,该方法还包括:该第一sql引擎向用户显示该第一sql语句的提示信息。

11、上述技术方案中,可以通过客户端向用户显示该第一sql语句的提示信息,提高用户的交互体验。

12、结合第一方面,在第一方面的某些实现方式中,该第一sql防御规则为该拦截类的sql防御规则或该熔断类的sql防御规则,该第一sql引擎停止执行该第一sql语句。

13、结合第一方面,在第一方面的某些实现方式中,该方法还包括:该第一sql引擎向用户显示该第一sql语句被停止执行的原因。

14、上述技术方案中,可以通过客户端向用户显示该第一sql语句被停止执行的原因,提高用户的交互体验。

15、结合第一方面,在第一方面的某些实现方式中,该第一sql引擎自动在加载周期内加载该至少一个sql防御规则。

16、上述技术方案中,sql引擎可以在加载周期内自动加载sql防御规则,而不需要重启sql引擎,也不需要中断业务。

17、结合第一方面,在第一方面的某些实现方式中,该sql防御规则中还包括生效的租户列表以及规则标识id。

18、第二方面,提供了一种结构化查询语言sql防御的系统,该系统包括sql防御规则配置单元和多个sql引擎:该sql防御规则配置单元,用于通过统一的入口为该多个sql引擎配置对应的sql防御规则,每个该sql防御规则中包括生效的sql引擎以及对应的执行动作,该多个sql引擎对应的sql防御规则的格式相同;该sql防御规则配置单元,还用于根据每个该sql防御规则中生效的sql引擎,将配置的sql防御规则分别发送给对应的sql引擎,以便于该sql引擎根据获得的sql防御规则对接收到的sql语句进行防御。

19、结合第二方面,在第二方面的某些实现方式中,该多个sql引擎包括第一sql引擎,该第一sql引擎,用于从该sql防御规则配置单元获取对应的至少一个sql防御规则,该至少一个sql防御规则包括第一sql防御规则;该第一sql引擎,还用于从业务层接收到第一sql语句;该第一sql引擎,还用于根据该第一sql语句满足该第一sql防御规则,执行该第一sql防御规则中的动作。

20、结合第二方面,在第二方面的某些实现方式中,该sql防御规则配置单元具体用于:根据每个该sql防御规则中生效的sql引擎,在加载周期内自动将配置的sql防御规则分别发送给对应的sql引擎。

21、结合第二方面,在第二方面的某些实现方式中,该sql防御规则包括提示类的sql防御规则、拦截类的sql防御规则、熔断类的sql防御规则本文档来自技高网...

【技术保护点】

1.一种结构化查询语言SQL防御的方法,其特征在于,所述方法应用于SQL防御系统,所述SQL防御系统包括SQL防御规则配置单元和多个SQL引擎,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述多个SQL引擎包括第一SQL引擎,所述方法还包括:

3.根据权利要求1或2所述的方法,其特征在于,所述SQL防御规则配置单元根据每个所述SQL防御规则中生效的SQL引擎,将配置的SQL防御规则分别发送给对应的SQL引擎包括:

4.根据权利要求1至3中任一项所述的方法,其特征在于,所述SQL防御规则包括提示类的SQL防御规则、拦截类的SQL防御规则、熔断类的SQL防御规则。

5.根据权利要求4所述的方法,其特征在于,第一SQL防御规则为所述提示类的SQL防御规则,

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

7.根据权利要求4所述的方法,其特征在于,所述第一SQL防御规则为所述拦截类的SQL防御规则或所述熔断类的SQL防御规则,

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

9.根据权利要求1至8中任一项所述的方法,其特征在于,所述SQL防御规则中还包括生效的租户列表以及规则标识ID。

10.一种结构化查询语言SQL防御的系统,其特征在于,所述系统包括SQL防御规则配置单元和多个SQL引擎:

11.根据权利要求10所述的系统,其特征在于,所述多个SQL引擎包括第一SQL引擎,

12.根据权利要求10或11所述的系统,其特征在于,所述SQL防御规则配置单元具体用于:

13.根据权利要求10至12中任一项所述的系统,其特征在于,所述SQL防御规则包括提示类的SQL防御规则、拦截类的SQL防御规则、熔断类的SQL防御规则。

14.根据权利要求13所述的系统,其特征在于,第一SQL防御规则为所述提示类的SQL防御规则,

15.根据权利要求14所述的系统,其特征在于,

16.根据权利要求13所述的系统,其特征在于,所述第一SQL防御规则为所述拦截类的SQL防御规则或所述熔断类的SQL防御规则,

17.根据权利要求16所述的系统,其特征在于,

18.根据权利要求10至17中任一项所述的系统,其特征在于,所述SQL防御规则中还包括生效的租户列表以及规则标识ID。

19.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;

20.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求的1至9中任一项所述的方法。

21.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1至9中任一项所述的方法。

...

【技术特征摘要】

1.一种结构化查询语言sql防御的方法,其特征在于,所述方法应用于sql防御系统,所述sql防御系统包括sql防御规则配置单元和多个sql引擎,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述多个sql引擎包括第一sql引擎,所述方法还包括:

3.根据权利要求1或2所述的方法,其特征在于,所述sql防御规则配置单元根据每个所述sql防御规则中生效的sql引擎,将配置的sql防御规则分别发送给对应的sql引擎包括:

4.根据权利要求1至3中任一项所述的方法,其特征在于,所述sql防御规则包括提示类的sql防御规则、拦截类的sql防御规则、熔断类的sql防御规则。

5.根据权利要求4所述的方法,其特征在于,第一sql防御规则为所述提示类的sql防御规则,

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

7.根据权利要求4所述的方法,其特征在于,所述第一sql防御规则为所述拦截类的sql防御规则或所述熔断类的sql防御规则,

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

9.根据权利要求1至8中任一项所述的方法,其特征在于,所述sql防御规则中还包括生效的租户列表以及规则标识id。

10.一种结构化查询语言sql防御的系统,其特征在于,所述系统包括sql防御规则配置单元和多个sql引擎:

11.根据权利...

【专利技术属性】
技术研发人员:武文博赵胜涛吴定梅
申请(专利权)人:华为云计算技术有限公司
类型:发明
国别省市:

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

1