1、背景描述
通过编写CodeQL脚本来查询响应包中是否包含了我所关心的敏感数据(例如手机号、身份证号),其中的一种情景是返回值是Map类型的变量,所以分享一下CodeQL对Map类型的一些支持。
2、CodeQL Maps模块提供的类
FreshMap
用来表示new一个Map类型的表达式
MapType
用来表示Map类型
1)用来表示Map对象方法的类
MapMethod
用来表示Map类型的对象所有的方法
MapMutator
用来表示Map类型里面赋值相关的方法
MapQueryMethod
用来表示Map类型里面查询相关的方法
MapSizeMethod
用来表示Map类型的Size方法
2)用来表示调用了Map对象方法的类
MapMutation
查看所有调用了Map对象任意方法的表达式
MapPutCall
查看所有调用了Map对象put方法的表达式
3、实践
CodeQL提供的Java Map类型的操作类中,在实际使用中用的比较多便是MapPutCall, MapType这两个类,通过下面这两个例子来展示一个Map类型的变量如何关联这两个类。
需求:return语句中调用了Map类型的变量mapVar,获取mapVar的key和value
需求:return语句中调用了Map类型的变量mapVar,获取mapVal所有value的类型
这个需求的话直接用MapType会更加便捷
相关推荐: 关于成立城市轨道交通信息安全专项工作n总体协调组和专家组的通知
城市轨道交通信息安全专项工作各有关单位:根据中国城市轨道交通协会工作安排,信息化专委会牵头开展城市轨道交通信息安全专项工作,围绕信息安全基础技术研究、标准体系建设、产品检测和认证、建立常态化安全服务机制、网络与信息安全培训五大方面开展,以提升行业整体信息安全防…
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论