首页 > 解决方案 > jaxb:如何影响恶意代码生成

问题描述

使用 SAST 工具进行静态代码分析,我们在 jaxb 生成的代码中获得了安全发现,在 getter 和 setter 方法中声称“将可变对象传递给不受信任的方法”(CWE-374)。建议是在将对象的引用传递给调用者之前克隆对象。

但是我们如何在生成的代码中处理类似的问题呢?jaxb有选项吗?

标签: javajaxbcode-generation

解决方案


我不知道会影响特定代码生成的自定义选项。

我知道有两种选择效果很好:

  1. 实现一个 JAXB 插件。该插件可以在发出之前修改标准生成的代码,或者生成额外的代码来实现所需的功能。有很多 JAXB 插件示例可以帮助您入门,但详细信息超出了 StackOverflow 上的单个问题的范围。
  2. 对生成的代码进行后处理,例如使用 maven replacer 插件。如果您可以编写一个正则表达式来匹配您想要在生成的类中重写的代码,这将是快速和简单的。

我们目前利用这两种方法来管理我们生成的代码。

我们尚未实现的另一种可能性是向您有兴趣调整的方法添加注释(可以使用现有的开源 JAXB 插件完成)并使用其他技术来影响代码/执行(例如,注释处理器、AOP工具)。


推荐阅读