为了账号安全,请及时绑定邮箱和手机立即绑定

如何修复 CWE 73 文件名或路径的外部控制

如何修复 CWE 73 文件名或路径的外部控制

牛魔王的故事 2023-06-04 17:28:24
在 Veracode 扫描期间,我的结果中出现了 CWE 73 问题。有人可以建议我如何针对以下编码场景修复此解决方案吗?提供的现有解决方案不起作用,我也想知道任何 ESAPI 属性都可以用来解决这个问题吗?尝试 { String serviceFile = System.getProperty("PROP", ""); logger.info("服务A", "加载服务文件[" + serviceFile+ "]."); //安全问题CWE 73发生在这一行 }
查看完整描述

3 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

有几种解决方案:

  1. 使用白名单进行验证,但使用来自入口点的输入 正如我们在使用硬编码值列表中提到的那样。

  2. 使用简单的正则表达式白名单进行验证

  3. 规范化输入并验证路径

我使用了第一个和第二个解决方案并且工作正常。

查看完整回答
反对 回复 2023-06-04
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

本文档提供了有关建议的补救措施的详细信息,任何明确的自定义解决方案。就我而言,我在提供的方法参数中尝试了白名单或黑名单模式,但这仍然没有解决 CWE-73 风险。我认为这是预料之中的,文档确实说明了这一点:

静态引擎的检测范围有限。它只能扫描您的代码,实际上不会运行您的代码(与动态扫描不同)。所以它不会选择任何自定义验证(if 条件、正则表达式等)。但这并不意味着这不是消除风险的完全有效的解决方案!

我尝试了基于自定义黑名单模式的解决方案,并使用 FilePathCleanser 对该方法进行了注释,如此处所述,它解决了 CWE-73 问题,veracode 不再将其显示为风险。


查看完整回答
反对 回复 2023-06-04
?
慕神8447489

TA贡献1780条经验 获得超1个赞

尝试使用推荐的 OWASP ESAPI 验证器方法验证此 PROP 字符串,如下所示。

例子:

String PropParam= ESAPI.validator().getValidInput("",System.getProperty("PROP", ""),"FileRegex",false);

FileRegex是用于验证 PROP 字符串(即文件路径)的正则表达式。

在 Validator.properties 中定义FileRegex = ^(.+)\/([^\/]+)$


查看完整回答
反对 回复 2023-06-04
  • 3 回答
  • 0 关注
  • 380 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信