Исправление уязвимостей Checkmarx XSS - PullRequest
0 голосов
/ 11 февраля 2020

Checkmarx предоставляет уязвимость XSS для следующего метода в моем классе Controller. В частности: значение этого элемента (ResultsVO) затем проходит через код без надлежащей очистки или проверки и в конечном итоге отображается пользователю в методе:

 @RequestMapping(value = "/getresults", method = RequestMethod.POST, produces = "application/json")
    @ResponseBody
    public ResultsVO getConfigResults(@RequestBody ResultsVO resultsVO, HttpServletRequest request)
            throws OverrideApplicationException {
        String loggedUserId = request.getHeader("USER");
        return resultsService.getConfigResults(resultsVO, loggedUserId);
    }

Объект ResultsVO имеет много атрибутов String, и мне просто интересно, есть ли элегантный способ их кодирования, чтобы предотвратить эту уязвимость.

1 Ответ

0 голосов
/ 09 марта 2020

Вам нужно удалить из него escape-символы, такие как Html / Js скрипты. Вам нужно использовать Jsoup и библиотеку apache -commons для экранирования кода Html / Javascript.

Пример:

    String loggedUserId = Jsoup.clean( 
        org.apache.commons.lang.StringEscapeUtils.escapeHtml(
        org.apache.commons.lang.StringEscapeUtils.escapeJavaScript(  
          request.getHeader("USER")
        )));
...