我有路径操作问题。以下代码放在ASPx页面的Page_load方法中。
String rName = Request.QueryString["reportName"];
string path = "C:\\hari" + rName;
if (File.Exists(path))
{
File.Delete(path);
}
但上述示例代码的 Fortify 扫描报告显示“路径操纵”问题很严重 需要帮助修改上面的代码,以便它可以通过强化扫描
最佳答案
Jackson 是对的,这是一个可以通过间接选择修复的直接文件路径操作漏洞。 从您已知的目录中,列出所有文件。使用来自您自己的目录列表的值,而不是用户提供的值。
String rName = Request.QueryString["reportName"];
String knownPath = "C:\\hari";
DirectoryInfo di = new DirectoryInfo(knownPath);
FileInfo[] files = di.GetFiles(rName);
if (files.length > 0)
{
files[0].Delete();
}
关于c# - 如何修复以下代码示例的 Fortify 扫描报告中的 ‘Path Manipulation’ 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4732967/