咨询PMD是否存在校验预初始化静态SecureRandom实例使用的对应规则
核实结论
- 不存在检索遗漏,该指定提交版本的PMD Java规则集,完全没有覆盖「强制仅使用预初始化静态SecureRandom实例」的校验需求。
现有规则的覆盖范围
- 你检索到的两处加密类关联内容,已经是该版本下PMD安全规则模块的全部核心配置与对应测试用例,所有内置规则的设计目标均聚焦于加密实现的安全性缺陷:比如弱加密算法使用、初始化向量配置不规范、硬编码加密密钥、随机数生成器采用弱种子这类会直接引发安全漏洞的场景。
- SecureRandom实例不复用带来的高耗时问题属于运行性能问题,不属于安全风险范畴,从设计初衷上就没有被纳入PMD核心安全规则集的考虑范围,自然不存在相关内置校验逻辑。
适配该版本的落地方案
- 不需要更换工具,基于当前PMD版本的Java抽象语法树匹配能力,就可以快速实现目标校验规则:
- 识别所有直接调用
new SecureRandom()创建实例的代码节点 - 对非
static修饰、在方法内部或非静态成员位置创建的SecureRandom实例触发告警 - 排除
static final修饰、类加载阶段预初始化的SecureRandom实例场景,避免误报
- 识别所有直接调用
内容的提问来源于stack exchange,提问作者zawarudo
相关产品推荐
相关产品推荐

