文件名或路径安全性的外部控制问题

问题描述 投票:1回答:1

我有验证码

File file = new File(fileName)

fileName我正在从其他细节中获取。但是我越来越

External Control of File Name or Path

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

java security veracode
1个回答
2
投票

报告的问题意味着某人可以从外部修改fileName,例如通过用户输入或通过修改配置文件。另请参阅CWE-73: External Control of File Name or Path

[这导致了安全漏洞,攻击者可以访问您文件系统上的任何文件,并且可以读取文件甚至覆盖目标文件以外的文件。

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

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

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

要解决这个问题,您可以使用validation来确保输入不包含诸如..之类的特定字符串,或者您可以使用whitelists(如果可能的输入范围受到限制)确保仅提交众所周知的值。

© www.soinside.com 2019 - 2024. All rights reserved.