jaxb:如何影响恶意代码的生成

jaxb: how to influence malicious code generation

使用 SAST 工具进行静态代码分析,我们在 jaxb 生成的代码中获得安全发现,在 getter 和 setter 方法中声明 "Passing mutable objects to an untrusted method" (CWE-374)。建议是,在将其引用传递给调用者之前克隆对象。

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

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

我知道有两个选项很有效:

  1. 实施 JAXB 插件。插件可以在发出之前修改标准生成的代码,或者生成额外的代码来实现所需的功能。有很多 JAXB 插件示例可以帮助您入门,但详细信息超出了 Whosebug 上单个问题的范围。
  2. Post-处理生成的代码,例如使用 maven replacer 插件。如果您可以编写一个正则表达式来命中您要在生成的 类.
  3. 中重写的代码,这将变得简单快捷

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

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