JSON 杰克逊图书馆有 JSON 消毒能力吗?

Does JSON Jackson Library have JSON Sanitizing capability?

JSON Jackson 图书馆是否具有 JSON 消毒功能,例如 OWASP JSON Sanitizer ? 我浏览了 Jackson 文档,但找不到任何相关参考。它只讨论 JSON 数据的流式处理、遍历和绑定,而没有涉及清理或类似功能。

有人可以确认一下吗

我需要一个库来检查 JSON 数据是否存在任何恶意或易受攻击的 content/code。

这样的消毒是什么意思?您链接到的页面实际上并没有解释它应该做什么。但我猜它会被用来验证输入是否有效 JSON,而不是类似于 JSON 的东西,例如 Javascript 代码。

现在:如果想要获取声称为 JSON 的任意内容,您可以在流模式下使用 Jackson 来读取和写入内容。 自从杰克逊:

  1. 只接受有效的JSON(而不是,例如,可执行文件Javascript),AND
  2. 只生成格式正确的有效 JSON

阅读+写作的结合应该净化输入。你可以这样做:

JsonFactory f = new JsonFactory();
JsonParser p = f.createParser(inputFile);
JsonGenerator g = f.createGenerator(outputFile);

while (p.nextToken() != null) {
  g.copyCurrentStructure(p);
}
p.close();
g.close();

这是一种确保无效内容无法通过系统的非常快速的方法。