c# - 如何修复以下代码示例的 Fortify 扫描报告中的 ‘Path Manipulation’ 问题

标签 c# asp.net

我有路径操作问题。以下代码放在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/

相关文章:

c# - ASP.NET 中的模拟失败

asp.net - AngularJS $http.POST 方法 405 错误

javascript - 通过javascript将查询字符串从一个页面传递到另一个页面

c# - SSIS 脚本任务获取文件名并存储到 SSIS 对象变量

c# - 代理 HTTP 请求

c# - 无法解析名称字段奇怪的 Json

asp.net - System.Web.Security.FormsAuthentication.Encrypt 返回 null

c# - 对列表求和,但仅针对某个点之后的值

c# - 当顶级命名空间包含基类且内部命名空间包含子类时的 C# 命名空间和类/子类命名约定

JavaScript 从 View 状态获取自定义对象