我有验证码
File file = new File(fileName)
此fileName
我正在从其他细节中获取。但是我越来越
External Control of File Name or Path
当我将代码提交给安全扫描工具“ Vera Code”时出错。有人可以帮我解决这个问题。
报告的问题意味着某人可以从外部修改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(如果可能的输入范围受到限制)确保仅提交众所周知的值。