[发明专利]一种SQL语句风险检测方法、装置、设备及介质在审
申请号: | 202210119145.8 | 申请日: | 2022-02-08 |
公开(公告)号: | CN114547024A | 公开(公告)日: | 2022-05-27 |
发明(设计)人: | 钟泽鑫;狄鹏;刘向阳;刘江潮 | 申请(专利权)人: | 支付宝(杭州)信息技术有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/242;G06F21/55 |
代理公司: | 北京晋德允升知识产权代理有限公司 11623 | 代理人: | 刘立升 |
地址: | 310000 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sql 语句 风险 检测 方法 装置 设备 介质 | ||
1.一种SQL语句风险检测方法,包括:
获取目标对象对应的二进制文件,判断所述二进制文件是否包含对预设操作的调用;其中,所述预设操作是删除数据表或删除数据表中的数据的操作;
若所述二进制文件包含对预设操作的调用,则判断用于执行所述预设操作的SQL语句是否存在条件约束语句;
若用于执行所述预设操作的SQL语句不存在条件约束语句,则判断所述SQL语句存在风险。
2.如权利要求1所述的方法,所述方法还包括:
若用于执行所述预设操作的SQL语句存在条件约束语句,则判断所述条件约束语句是否存在永真情况;
若是,则判断所述SQL语句存在风险。
3.如权利要求1所述的方法,判断所述二进制文件是否包含对预设操作的调用,包括:
判断所述二进制文件是否包含对目标SQL语句的调用;其中,所述目标SQL语句为用于执行预设操作的SQL语句;
根据所述二进制文件是否包含对目标SQL语句的调用,判断所述二进制文件是否包含对预设操作的调用。
4.如权利要求3所述的方法,判断所述二进制文件是否包含对目标SQL语句的调用,包括:
判断所述二进制文件中的函数是否调用了目标SQL语句;
根据所述二进制文件中的函数是否调用了目标SQL语句,判断所述二进制文件是否包含对目标SQL语句的调用。
5.如权利要求4所述的方法,判断所述二进制文件中的函数是否调用了目标SQL语句,包括:
对所述二进制文件中的任一函数,确定该函数对应的SQL调用ID;
根据所述SQL调用ID对应的SQL语句是否为目标SQL语句,判断所述二进制文件中的该函数是否调用了目标SQL语句。
6.如权利要求4所述的方法,判断所述二进制文件中的函数是否调用了目标SQL语句,包括:
建立所述二进制文件对应的数据库调用模型,所述数据库调用模型用于表征所述二进制文件中的函数对SQL语句的调用关系;
根据所述数据库调用模型判断所述二进制文件中的函数是否调用了目标SQL语句。
7.如权利要求6所述的方法,所述数据库调用模型包括下列的一项或多项:
所述二进制文件中所调用的SQL语句的类型;
所述二进制文件中所调用的SQL语句的SQL调用ID;
所述二进制文件中所调用的SQL语句对应的数据库表信息;
所述二进制文件中所调用的SQL语句对应的数据库字段信息;
所述二进制文件中所调用的SQL语句对应的程序变量字段信息。
8.如权利要求1至7中任一项所述的方法,判断所述二进制文件中的函数是否调用了目标SQL语句,还包括:
建立所述二进制文件中的函数间调用关系;
对所述二进制文件中的任一函数,根据所述函数间调用关系确定该函数的下级函数;其中,该函数的下级函数为该函数所调用的函数;
若该函数的下级函数调用了目标SQL语句,则判断该函数调用了目标SQL语句。
9.如权利要求8所述的方法,建立所述二进制文件中的函数间调用关系,包括:
建立所述二进制文件的中间表示图;
基于所述中间表示图建立所述二进制文件中的函数间调用关系。
10.如权利要求2所述的方法,判断所述条件约束语句是否存在永真情况,包括:
建立所述二进制文件中的数据流转关系,根据所述数据流转关系判断所述条件约束语句是否存在永真情况。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于支付宝(杭州)信息技术有限公司,未经支付宝(杭州)信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210119145.8/1.html,转载请声明来源钻瓜专利网。