【发布时间】:2014-08-27 19:37:48
【问题描述】:
我正在使用 ruby 2.1.0
我有一个 json 文件。 例如:test.json
{
"item":[
{"apple": 1},
{"banana": 2}
]
}
使用 YAML.load 加载此文件是否安全?
YAML.load(File.read('test.json'))
我正在尝试加载 json 或 yaml 格式的文件。
【问题讨论】:
-
以什么方式安全?会导致任意代码运行吗?
-
YAML 和 JSON 根本不是一回事。您是否尝试加载 JSON?还是 YAML?您的示例看起来像 JSON,那么为什么不直接使用
JSON.load? -
@Pete 我正在尝试加载 JSON 或 YAML 文件。这似乎是我的一种组合方式。以后如果 yaml 来了,这段代码不会中断。
-
我希望 YAML 解析器在遇到无效的 YAML(JSON 不是有效的 YAML)时抛出异常,因此您可以捕获任何解析异常,并回退到使用
JSON.load。 -
@Pete 你确定 JSON 不是有效的 YAML 吗?看到这个。 stackoverflow.com/questions/1726802/…