crlf注入漏洞

jhdbpxl9  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(431)

这是一个slf4j记录器,我一直试图记录与2个参数的消息错误。

catch(ExecutionException executionException) {

LOGGER.error("TimeoutException caught , Error: " + SSG_TIMEOUT.getErrorText() 
       + ". Message: " +executionException.getMessage());    
}
``` `SSG_TIMEOUT.getErrorText()` 将结果转换为字符串 `"TimeOut error encountered"` 我用过的东西
手动消毒代码

return entry.replace("\t", "\t").replace("\b", "\b").replace("\n",
"\n").replace("\r", "\r").replace("\f", "\f").replace("\u0000",
"\0").replace("\a", "\a").replace("\v", "\v").replace("\e",
"\e").replaceAll("\p{Cntrl}", "").replace("'", "\'").replace(""",
"\"").replace("\", "\\");
``` StringEscapeUtils.escapeJson(String errorMessage) 字符串生成器附加字符串+ escapeJson(StringBuilder.toString()) 我仍然在veracode报告中看到了这个问题。
有什么建议吗?

clj7thdc

clj7thdc1#

首先,前两种消毒方法是正确的,只是veracode不支持。
在使用方法之前,您应该访问https://help.veracode.com/r/review_cleansers
因此,对于上述问题,stringutils.normalizespace()有效。”stringutils.escapejava“也可以使用,但它似乎已被弃用
解决方案:

catch(ExecutionException executionException) {

    LOGGER.error("TimeoutException caught , Error: " + 
    StringUtils.normalizeSpace(SSG_TIMEOUT.getErrorText() 
    }

相关问题