如何修复Fortify扫描报告中的"Path Manipulation"问题,以获取以下代码示例

use*_*206 3 c# asp.net

我有路径操纵问题.以下代码放在ASPx页面的Page_load方法中.

String rName = Request.QueryString["reportName"];
string path = "C:\\hari" + rName;
if (File.Exists(path))
{
    File.Delete(path);
}
Run Code Online (Sandbox Code Playgroud)

但Fortify上面的示例代码扫描报告显示"Path Manipulation"问题为高需要帮助修改上面的代码,以便它可以通过强化扫描

Cos*_*low 6

杰克逊是对的,这是一个直接的文件路径操纵漏洞,可以通过间接选择来修复.从已知目录中,列出所有文件.使用来自您自己的目录列表的值,而不是用户提供的值.

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();
}
Run Code Online (Sandbox Code Playgroud)