当前位置: 首页 > 知识库问答 >
问题:

修复Checkmarx XSS漏洞

楮杰
2023-03-14

Checkmarx在我的Controller类中为以下方法提供了XSS漏洞。具体来说:此元素的值(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属性,我只是想知道是否有一种优雅的方法来编码它们以防止此漏洞。

共有2个答案

杜辉
2023-03-14

您需要从中删除转义字符,例如Html / Js脚本。你需要使用Jsoup和阿帕奇共享资源库来转义HTML/Javascript代码。

例:

    String loggedUserId = Jsoup.clean( 
        org.apache.commons.lang.StringEscapeUtils.escapeHtml(
        org.apache.commons.lang.StringEscapeUtils.escapeJavaScript(  
          request.getHeader("USER")
        )));
阎涵容
2023-03-14

试试这个--它对我很管用:)

resultsVO = SecurityUtil.sanitizeObject(resultsVO, ResultsVO.class);
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);
    }

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

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

 类似资料:
  • 我开始学习react,并通过运行以下程序创建了我的第一个应用程序: npx创建-反应-应用程序我的应用程序 应用程序建成后,我在终端上收到一个警告,上面写着: 22个漏洞(9个中度,13个高度) 我试图通过运行以下命令来修复它: “npm审核修复程序” 但它返回了这个: npm错误!代码ERE解决npm错误!ERESOLVE无法解析依赖关系树npm错误!npm错误!发现:类型-fest@0.21.

  • 在我创建了一个新的Angular 12.0.3项目后,立即检测到8个高漏洞和40个中等漏洞。 当尝试使用修复问题时,没有任何变化。将漏洞减少到9个中度漏洞和7个高度漏洞,但当我尝试运行项目时,由于版本不匹配,会显示以下错误: 我已经尝试按照此答案中描述的解决方案修复漏洞,但这破坏了项目。 此外,我使用angle-cli的v11-lts创建了一个项目,但同样的问题伴随着不同的漏洞: 有没有办法,修复

  • 问题内容: 当我运行它说npm audit fixnpm audit。 但是,输出 这是否意味着它不应该由用户修复? 当我运行它时,它会给我表的列表,类似于此: 在此示例中,链接页面的补救部分说。但是,其中有几行: 不再有lodash依赖项。因此它应该已经是v4.17.5。我还检查了哪条线。在有这些线路: 我认为该版本显示在“ _id”中,而不是在“ _from”中,因此版本是正确的,但漏洞仍会出

  • 尝试为旧版spring boot应用程序更新log4j2(使用spring-boot-parent-1.5.6.RELEASE)——使用多模块 尝试了spring在最近的文档中建议的所有方法,但都没有奏效 已尝试选项: 选项1-添加到属性 选项2-添加starter-log4j2并排除核心,稍后添加log4j核心(最新) 选项3-仅上述选项和log4j2 api 但是导入的依赖项仍然是slf4j-

  • 本文向大家介绍修复bash漏洞的shell脚本分享,包括了修复bash漏洞的shell脚本分享的使用技巧和注意事项,需要的朋友参考一下 在网上搜资料找到一个大神写的shell修复bash漏洞脚本,觉得很不错,拖到我blog里来共享给大家. 脚本内容:

  • 本文向大家介绍PHPCMS2008广告模板SQL注入漏洞修复,包括了PHPCMS2008广告模板SQL注入漏洞修复的使用技巧和注意事项,需要的朋友参考一下 00 漏洞描述 PHPCMS2008由于广告模块取referer不严,导致一处sql注入漏洞.可以得到管理员用户名与密码,攻击者登录后台后可能会获取webshell,对服务器进行进一步的渗透。 01 漏洞分析 漏洞产生的位置: /ads/inc