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

仅使用replaceAll(“\r”,“_”)传递Veracode CWE 117(日志的不正确输出中和)。replaceAll(“\n”,“_”)

路雅懿
2023-03-14

我在一些论坛上读到这样的神话,即通过这样的操作就足以通过Veracode CWE 117(日志的不适当输出中和)问题。有人能证实是不是这样吗?

 message.replaceAll("\r", "_").replaceAll("\n", "_");

从这个主题如何修复Veracode CWE 117(日志的不正确输出中和)中,我了解到我需要做一些类似的事情

ESAPI.encoder().encodeForHTML(message);

共有1个答案

益清野
2023-03-14

需要对消息所在的上下文进行转义。ESAPI记录器确实会替换\r\n字符,如果配置为html的话,还会替换为html编码。

目前,这段代码给了我一个来自Veracode的CWE 117:

log.log(Level.WARNING, System.getenv("unsafe"));

此代码不:

log.log(Level.WARNING, ESAPI.encoder().encodeForHTML(System.getenv("unsafe")));

encodeForHTML将\r\n分别编码为&xd;&xa;,但是下划线更加清晰,而且如果对html进行解码,可能会出现意外的新行。

 类似资料:
  • 问题内容: 为什么我从以下代码中获得“ AAAAAAAAA”而不是“ 1A234A567”: 任何想法? 问题答案: 函数以正则表达式为参数。和正则表达式“。” 表示“任何字符”。您必须对其进行转义以指定它是您想要的字符:

  • 用给定值替换与指定模式匹配的所有子字符串。 语法 (Syntax) String replaceAll(Pattern from, String replace) 参数 (Parameters) From - 要替换​​的字符串。 Replace - 替换字符串。 返回值 (Return Type) 返回一个字符串。 例子 (Example) void main() { String s

  • 用该文本上的闭包结果替换所有出现的捕获组。 语法 (Syntax) void replaceAll(String regex, String replacement) 参数 (Parameters) regex - 要与此字符串匹配的正则表达式。 replacement - 将替换找到的表达式的字符串。 返回值 (Return Value) 此方法返回结果String。 例子 (Example)

  • 描述 (Description) replaceAll( selector )方法用匹配的元素替换指定选择器匹配的元素。 语法 (Syntax) 以下是使用此方法的简单语法 - <i>selector</i>.replaceAll( selector ) 参数 (Parameters) 以下是此方法使用的所有参数的说明 - selector - 用于查找和替换匹配元素的元素。 例子 (Examp

  • 问题内容: 有一个Spring全局方法记录如下异常: Veracode扫描说此日志记录已经并建议使用ESAPI记录器。有什么方法可以解决此漏洞而无需将记录器更改为ESAPI?这是我在代码中唯一遇到此问题的地方,我试图找出如何用最少的更改来解决它。也许ESAPI有一些我没有注意到的方法? PS Current logger是slf4j上的Log4j UPD: 最后,我使用了ESAPI记录器。我以为它

  • 我是Java的新手,我在现有代码中发现了一个似乎应该是无限循环的循环(或者有非常不希望的行为),但实际上是有效的。 你能解释一下我错过了什么吗?我认为它应该是无限的原因是,根据这里的文档(https://docs.oracle.com/javase/8/docs/api/java/util/regex/matcher.html#replaceAll-java.lang.String-),调用rep