[发明专利]基于抽象语法树的防数据越权方法、装置及存储介质在审
申请号: | 201911382182.2 | 申请日: | 2019-12-27 |
公开(公告)号: | CN111221804A | 公开(公告)日: | 2020-06-02 |
发明(设计)人: | 吴铮 | 申请(专利权)人: | 北京健康之家科技有限公司 |
主分类号: | G06F16/21 | 分类号: | G06F16/21;G06F16/22;G06F16/242;G06F16/28;G06F21/31 |
代理公司: | 北京中强智尚知识产权代理有限公司 11448 | 代理人: | 黄耀威 |
地址: | 100102 北京市朝阳区利*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 抽象 语法 数据 越权 方法 装置 存储 介质 | ||
本发明公开了一种基于抽象语法树的防数据越权方法、装置及存储介质,该方法包括若监测到来自服务器的查询语句即将查询数据库,基于预定义的抽象语法树解析查询语句得到语句资源和查询条件,基于语句资源中的关键字段分析语句资源是否满足查询条件,若语句资源不满足查询条件,阻止查询语句查询数据库并针对查询语句发出预警消息。本发明实施例无需针对每个查询语句分别设置对应的校验条件,有效避免了重复的校验逻辑,而且本发明实施例无需对数据库进行调整,能够适用于多种数据库,有效地屏蔽不同数据库的差异性。进一步地,本发明实施例有效地防止不合条件的查询语句查询数据库,提高了数据库访问的安全性。
技术领域
本发明涉及数据库访问技术领域,尤其是一种基于抽象语法树的防数据越权方法、装置及存储介质。
背景技术
在业务系统开发过程中通常需要保证用户操作自己的数据,但是由于黑客攻击以及盗号等现象的存在,经常会出现通过拦截用户信息等手段访问其他人数据的情况,出现这种情况的大部分原因是操作数据库过程中没有加上相关条件限制,比如用户的ID或者租户编号等。
目前有些业务系统在部分数据库访问层面添加了相关的查询检查操作,但是需要对每个访问请求分别做出相应的判断,例如业务系统在访问数据库层面,针对每一个查询语句添加用户身份的校验,以判断用户访问信息是否为空或用户访问信息和所操作资源是否匹配,访问信息为空或者不匹配则返回相关错误或者异常。这不仅容易造成大量代码重复,增加人为检测负担和压力,而且重复校验逻辑过多很可能造成代码的遗漏。此外,该方式需要针对不同的数据库方言和语法开发不同的检测逻辑,无法快速、便捷地进行数据库的数据库切换使用。
发明内容
有鉴于此,本发明实施例提供了一种基于抽象语法树的防数据越权方法、装置及存储介质,能够达到在减少重复的校验逻辑、有效屏蔽不同数据库差异性的基础上提高数据库访问的安全性的目的。
根据本发明实施例的一方面,提供了一种基于抽象语法树的防数据越权方法,包括:
若监测到来自服务器的查询语句即将查询数据库,基于预定义的抽象语法树解析所述查询语句得到语句资源和查询条件,其中所述语句资源中包含关键字段;
基于所述语句资源中的关键字段分析所述语句资源是否满足所述查询条件;
若所述语句资源不满足所述查询条件,阻止所述查询语句查询数据库并针对所述查询语句发出预警消息。
可选地,所述关键字段包括用户ID、身份证号、手机号码、账户名称、账户密码、邮箱中的至少一项。
可选地,所述查询条件包括所述语句资源中的关键字段包含指定的关键字段,基于所述语句资源中的关键字段分析所述语句资源是否满足所述查询条件,包括:
分析所述语句资源中的关键字段是否包含指定的关键字段;
其中,若所述语句资源中的关键字段不包含指定的关键字段,所述语句资源不满足所述查询条件。
可选地,所述查询条件包括所述语句资源中关键字段的字段内容属于预设字段内容,基于所述语句资源中的关键字段分析所述语句资源是否满足所述查询条件,包括:
分析所述语句资源中关键字段的字段内容是否属于预设字段内容;
其中,若所述语句资源中的关键字段的字段内容不属于预设字段内容,所述语句资源不满足所述查询条件。
可选地,若所述语句资源不满足所述查询条件,阻止所述查询语句查询数据库并针对所述查询语句发出预警消息之后,还包括:
将不满足所述查询条件的查询语句记录至预设的黑名单中。
可选地,监测到来自服务器的查询语句即将查询数据库之后,还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京健康之家科技有限公司,未经北京健康之家科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911382182.2/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置