C# 强化路径操作

C# 强化路径操作,c#,security,model-view-controller,fortify,C#,Security,Model View Controller,Fortify,我在下面几行中得到了一个强化错误- string path = "<hardcodedpath>"; var fileBytes = System.IO.File.ReadAllBytes(path + fileName); return File(fileBytes, System.Web.MimeMapping.GetMimeMapping(fileName), fileName); 字符串路径=”; var fileBytes=System.IO.File.Re

我在下面几行中得到了一个强化错误-

  string path = "<hardcodedpath>"; 
  var fileBytes = System.IO.File.ReadAllBytes(path + fileName);
  return File(fileBytes, System.Web.MimeMapping.GetMimeMapping(fileName), fileName);
字符串路径=”;
var fileBytes=System.IO.File.ReadAllBytes(路径+文件名);
返回文件(fileBytes,System.Web.MimeMapping.GetMimeMapping(fileName),fileName);
例如:-path=C:\WorkSpace\Project\\Files\

我正在确保(白名单?)参数fullPath是从预定义文件夹中单独获取的(此处未粘贴相同的代码),除预定义文件夹中的文件外,任何人都无法访问任何其他文件

然而,Fortify并未将这些问题标记为已解决。 我如何通过强化来解决这个问题?还有什么需要注意的吗

错误消息-
攻击者可以在.cs第446行将filesystem path参数控制为ReadAllBytes(),从而允许他们访问或修改其他受保护的文件。

由于愚蠢的信誉规则,我无法发表评论,因此我将在回答中说明这一点。您已经显示了“路径”的来源,但没有提到“文件名”的来源。如果该变量的值来自不受信任的源,则这就是问题的原因。您需要将该变量列入白名单,以便攻击者可以更改路径。一旦你知道你的白名单是好的,你可以抑制这个问题。光是白名单并不能阻止Fortify再次发现问题,因为它不能告诉你什么时候白名单就足够了


您也可以尝试将强化问题发布到他们的在线论坛。支持小组会监控这些论坛。

如果你仔细阅读问题,这篇文章的可能重复部分就不是重复部分。如果看不到上下文,很难看出这篇文章不是重复部分。请至少告诉我们,您发布的代码不在控制器操作中,
fullPath
无法被客户端代码操纵。我已编辑了您的标题。请参阅“”,其中的共识是“不,他们不应该”。除非Fortify的错误消息不同,否则这恰恰是重复的。