Java Map类型CodeQL相关类的关联
2021-9-26 00:9:22 Author: mp.weixin.qq.com(查看原文) 阅读量:7 收藏

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会更加便捷


文章来源: https://mp.weixin.qq.com/s?__biz=Mzg4ODU4ODYzOQ==&mid=2247484952&idx=1&sn=64323ba7bf4d76c58689bc73b6e3de1b&chksm=cff99628f88e1f3e2be9ec312e1a793f93b08438180cbb847724ea23e3250c2bddfde0eadcd5&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh