杰克逊移除反斜杠

时间:2019-01-02 08:26:43

标签: spring-boot jackson

我正在使用Spring boot并使用Jackson进行json解析。 为了清理JSON,我使用OWASP Json Sanitizer。

我的代码:

@RequestMapping("/aaa")
    public String abcd() {
        Dummy d1 = new Dummy();
        d1.setA(10);
        d1.setB("aaa");
        d1.setC("<script>alert(111)</script>");

        ObjectMapper mapper = new ObjectMapper();
        try {
            String json = mapper.writeValueAsString(d1);
            JsonFactory f = new JsonFactory();
            JsonParser jsonParser = f.createJsonParser(json1);
             JsonNode node = mapper.readTree(jsonParser);
             String oldJson = node.toString();
             String updateJson = JsonSanitizer.sanitize(node.toString());
             JsonNode  node1 = mapper.readTree(updateJson);
             System.out.println("Node === ");
             System.out.println(node1);
             System.out.println("JSON === ");
             System.out.println(updateJson);
             System.out.println("===============");
             Dummy x = mapper.readValue(updateJson, Dummy.class);
             System.out.println(x.getC());
             return x.getC();

        } catch (Exception e) {
            // TODO Auto-generated catch block
            System.out.println("Inside ctcg");
            e.printStackTrace();
        }


        System.out.println("=== Now me here");
        return "aa";
    }

我面临的问题是: updateJson 变量已清除。

{"c":"<script>alert(111)<\/script>"}

但是当我做

  System.out.println(x.getC());

它再次显示<script>alert(111)</script>而不是<script>alert(111)<\/script>

我想念什么?我希望它逃脱。为XSS做。

0 个答案:

没有答案