我有一个代码
File file = new File(fileName)
这fileName
我正在准备其他细节。但我得到了
External Control of File Name or Path
当我将我的代码提交给安全扫描工具'Vera Code'时,缺陷。有人可以帮我解决这个问题。
答案 0 :(得分:1)
报告的问题意味着某人可以从外部修改fileName
,例如通过用户输入或修改配置文件。另请参阅CWE-73: External Control of File Name or Path。
这会导致安全漏洞,攻击者可以访问文件系统上的任何文件,并且可以读取文件,甚至覆盖目标文件以外的其他文件。
您需要检查fileName
的各个部分的来源是什么。例如,假设用户能够通过您的Web UI提供extn
。如果您在应用程序中使用用户输入而无需进一步验证,则用户可以访问他不应该访问的文件:
User input: extn="/../etc/passwd"
Resulting fileName: "/certificateId docTypeLongName_FileId/../etc/passwd"
要解决此问题,您可以使用验证确保输入不包含..
等特定字符串,或者您可以使用白名单(如果可能的输入范围是有限的),以确保只提交众所周知的值。