修复 Checkmarx XSS 漏洞

Pet*_*teY 2 java controller sanitization owasp checkmarx

Checkmarx 为我的 Controller 类中的以下方法提供了 XSS 漏洞。\n具体来说:此元素\xe2\x80\x99s 值(ResultsVO)然后在没有经过适当清理或验证的情况下流经代码,并最终在方法中显示给用户:

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

ResultsVO 对象有很多 String 属性,我只是想知道是否有一种优雅的方法对它们进行编码以防止此漏洞。

\n

Sta*_*low 5

试试这个——它对我有用:)

resultsVO = SecurityUtil.sanitizeObject(resultsVO, ResultsVO.class);
Run Code Online (Sandbox Code Playgroud)
public static <T> T sanitizeObject(Object object, Class<T> classOfT){
        Gson gson = new Gson();
        String json = Jsoup.clean(StringEscapeUtils.escapeHtml4(gson.toJson(object)), Whitelist.basic());
        return gson.fromJson(json, classOfT);
    }
Run Code Online (Sandbox Code Playgroud)

Checkmarx 将通过您报告的问题。:)

希望它会有所帮助 - 如果有效,请投票