在 Veracode 扫描期间,我的结果中出现了 CWE 73 问题。有人可以建议我如何针对以下编码场景修复此解决方案吗?提供的现有解决方案不起作用,我也想知道任何 ESAPI 属性都可以用来解决这个问题吗?尝试 { String serviceFile = System.getProperty("PROP", ""); logger.info("服务A", "加载服务文件[" + serviceFile+ "]."); //安全问题CWE 73发生在这一行 }
3 回答
心有法竹
TA贡献1866条经验 获得超5个赞
有几种解决方案:
使用白名单进行验证,但使用来自入口点的输入 正如我们在使用硬编码值列表中提到的那样。
使用简单的正则表达式白名单进行验证
规范化输入并验证路径
我使用了第一个和第二个解决方案并且工作正常。
繁花不似锦
TA贡献1851条经验 获得超4个赞
本文档提供了有关建议的补救措施的详细信息,任何明确的自定义解决方案。就我而言,我在提供的方法参数中尝试了白名单或黑名单模式,但这仍然没有解决 CWE-73 风险。我认为这是预料之中的,文档确实说明了这一点:
静态引擎的检测范围有限。它只能扫描您的代码,实际上不会运行您的代码(与动态扫描不同)。所以它不会选择任何自定义验证(if 条件、正则表达式等)。但这并不意味着这不是消除风险的完全有效的解决方案!
我尝试了基于自定义黑名单模式的解决方案,并使用 FilePathCleanser 对该方法进行了注释,如此处所述,它解决了 CWE-73 问题,veracode 不再将其显示为风险。
慕神8447489
TA贡献1780条经验 获得超1个赞
尝试使用推荐的 OWASP ESAPI 验证器方法验证此 PROP 字符串,如下所示。
例子:
String PropParam= ESAPI.validator().getValidInput("",System.getProperty("PROP", ""),"FileRegex",false);
FileRegex
是用于验证 PROP 字符串(即文件路径)的正则表达式。
在 Validator.properties 中定义FileRegex = ^(.+)\/([^\/]+)$
。
添加回答
举报
0/150
提交
取消