JSON Jackson Library是否具有JSON消毒能力?

时间:2015-04-23 14:49:32

标签: json jackson owasp input-sanitization

JSON杰克逊图书馆是否具有JSON清理功能,例如OWASP JSON Sanitizer ?我通过杰克逊文档,但是,找不到任何关于它的参考。它只涉及JSON数据的流式传输,遍历和绑定,而不涉及消毒或类似功能。

请有人确认。

我需要一个能够检查JSON数据是否存在任何恶意或易受攻击的内容/代码的库。

1 个答案:

答案 0 :(得分:1)

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

现在:如果想要采用任意声称为JSON的内容,您可以使用Jackson以流媒体模式阅读然后编写内容。 杰克逊:

  1. 只接受有效的JSON(而不是,例如,可执行的Javascript),AND
  2. 仅生成格式正确的有效JSON
  3. 阅读+写作的组合应该消毒输入。你可以这样做:

    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();
    

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