Снятие обратной косой черты Джексона - PullRequest
0 голосов
/ 02 января 2019

Я использую 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...