4

SnakeYAML文档:_

Yaml.load()警告:使用从不受信任的来源收到的任何数据进行调用是不安全的!

是安全问题吗?恶意 YAML 文件能做什么?

4

2 回答 2

3

我也想知道这一点,并在文档中找到了以下内容:

请注意,如果要将对象限制为 List 或 Long 等标准 Java 对象,则需要使用 SafeConstructor

Yaml yaml = new Yaml(new SafeConstructor());

上面引用的链接指向一个测试用例,其中 YAML 文档包含对 Java 对象的引用。如果没有SafeConstructor,yaml.load将调用对象的无参数构造函数,这对于类路径中的某些类可能是一件坏事。使用SafeConstructor,只会调用SafeConstructor嵌套类Java 代码)。

于 2014-01-22T16:52:38.337 回答
0

SnakeYAML 允许使用任何类加载器。创建类的实例时,它会调用构造函数。它将在那里运行任何代码。如果您自己加载课程 - 不用担心。

于 2013-09-11T20:52:21.317 回答