2

我有一个代码

File file = new File(fileName)

fileName正在从其他细节做准备。但是,我越来越

文件名或路径的外部控制

当我将代码提交到安全扫描工具“Vera Code”时出现缺陷。有人可以帮我解决这个问题。

4

1 回答 1

2

报告的问题意味着有人可以fileName从外部修改,例如通过用户输入或修改配置文件。另见CWE-73:文件名或路径的外部控制

这会导致一个安全漏洞,攻击者可以访问您文件系统上的任何文件,并读取文件甚至覆盖预期文件以外的文件。

您需要检查您的各个部分的来源fileName。例如,假设用户能够extn通过您的 Web UI 提供。如果您在应用程序中使用用户输入而无需进一步验证,则用户可能能够访问他不应该访问的文件:

User input: extn="/../etc/passwd"

Resulting fileName: "/certificateId docTypeLongName_FileId/../etc/passwd"

为了解决这个问题,您可以使用验证来确保输入不包含特定的字符串,例如..,或者您可以使用白名单(如果可能的输入范围有限)来确保只提交众所周知的值。

于 2013-01-29T11:30:34.460 回答