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

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

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

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

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(); } 

我认为问题是有人可以使用reportName = "..\\Windows\\Something important"来欺骗请求,这显然是一个安全漏洞。 您需要更改代码,以便它不会从请求查询字符串中读取部分文件名。