我尝试使用clean=message.replace('\n','').replace('\r','')。但它仍然无法通过veracode扫描。有什么更好的方法做这件事吗?另外,我阅读了关于ESAPI、Python的文章,但没有得到任何好的文档来修复这个问题。
不幸的是,ESAPI、Python是一个非常长的死项目。我没有任何Python替代方案,但该库自2010年8月9日以来就没有提交过。
我不熟悉Python web框架,但我经常教授有关安全编程的知识。
每次进行函数调用时,您都需要问自己这样一个问题:
“我是不是把这个传给翻译了?”
如果答案是“是”,那么您需要进行编码,以确保该函数将输入纯粹视为数据,而不是可执行代码。
在这种特殊情况下,如果您的日志有可能被浏览器解释(这很常见),那么您还需要对HTML进行编码。但是,如果您的环境从不使用基于HTML的日志记录,并且总是原始文本,则根据您的公司如何同意这些条款,这可能被视为“缓解”或“假阳性”。
另外,我喜欢用唯一的分隔符包装任何用户输入的做法。您可以使用方括号,但我喜欢日志中强烈的视觉提示。
[USERACTION]+userId+'()'+encode(userInput)+'<:::::[]=·()'
任何能让人明显看出有人篡改了你的日志的东西都是好的。声音越大越好!
问题内容: 有一个Spring全局方法记录如下异常: Veracode扫描说此日志记录已经并建议使用ESAPI记录器。有什么方法可以解决此漏洞而无需将记录器更改为ESAPI?这是我在代码中唯一遇到此问题的地方,我试图找出如何用最少的更改来解决它。也许ESAPI有一些我没有注意到的方法? PS Current logger是slf4j上的Log4j UPD: 最后,我使用了ESAPI记录器。我以为它
Spring global方法记录如下异常: Veracode scan指出,该日志有,并建议使用ESAPI日志记录器。有没有什么方法可以在不将记录器更改为ESAPI的情况下修复此漏洞?这是我在代码中唯一面对这个问题的地方,我试图找出如何用最少的更改来修复它。也许ESAPI有一些我没有注意到的方法? ESAPI有log4j记录器和记录器工厂的扩展。可以在esapi.properties中配置要使用
我在一些论坛上读到这样的神话,即通过这样的操作就足以通过Veracode CWE 117(日志的不适当输出中和)问题。有人能证实是不是这样吗? 从这个主题如何修复Veracode CWE 117(日志的不正确输出中和)中,我了解到我需要做一些类似的事情
我一直在尝试在我们的Spring应用程序中处理log4j2的安全性以传递Veracode。尤其是CWE 117-日志注入漏洞。我们有一个带有spring-boot-starter-log4j2的Spring应用程序。 我尝试配置log4j2模式: 但它不起作用。我还尝试了这样的方法: 或 我仍然得到veracode结果: 我们不想使用ESAPI或任何日志外观,我们不想更改代码中的所有日志行,有数千
我的软件使用RabbitMQ进行通信。然而,Veracode已从amqp客户端库中标记CWE 117(日志的输出中和不正确)。 我已经尝试升级到最新版本(4.11.3),但Veracode仍然不让我通过。我无法进一步升级,因为我的软件是用Java7编写的,客户端没有任何升级到Java8的计划。 我可以在我的软件代码中做些什么来解决CWE 117问题吗?