Jackson Library 是否像 OWASP JSON Sanitizer 一样具有 JSON 清理功能? 我浏览了杰克逊的文档,但找不到任何关于它的参考资料。它只讨论了 JSON 数据的流式传输、遍历和绑定,而没有涉及清理或类似功能。
有人可以确认一下。
我需要一个可以检查 JSON 数据是否存在任何恶意或易受攻击的内容/代码的库。
这种消毒意味着什么?您链接到的页面实际上并没有解释它应该做什么。但我猜它将用于验证输入是否是有效的 JSON,而不是类似于 JSON 的东西,例如 Javascript 代码。
现在:如果想法是获取声称是 JSON 的任意内容,您可以在流模式下使用 Jackson 来读取然后写入内容。自杰克逊以来:
- 仅接受有效的JSON(例如,不接受可执行的Javascript),并且
- 仅生成格式正确的有效 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();
这是确保无效内容不会通过系统的非常快速的方法。