【问题标题】:Fortify - Path ManipulationFortify - 路径操作
【发布时间】:2015-02-10 20:55:25
【问题描述】:

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

  string path = "<hardcodedpath>"; 
  var fileBytes = System.IO.File.ReadAllBytes(path + fileName);
  return File(fileBytes, System.Web.MimeMapping.GetMimeMapping(fileName), fileName);

例如:- 路径 = C:\WorkSpace\Project\\Files\

我确保(列入白名单?)参数 fullPath 是单独从预定义文件夹中获取的(此处未粘贴相同的代码),并且没有人能够访问除预定义文件中的文件之外的任何其他文件文件夹。

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

错误信息 - 攻击者可以在 .cs 第 446 行控制 ReadAllBytes() 的文件系统路径参数,这允许他们访问或修改其他受保护的文件。

【问题讨论】:

  • 如果您仔细阅读问题,这不是重复的。
  • 如果没有看到上下文,很难看出这是如何不是重复的。请至少向我们表明您发布的代码不在控制器操作中,并且fullPath 无法被客户端代码操作。
  • 我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
  • 除非来自 Fortify 的错误信息不同,否则这正是重复。

标签: c# security model-view-controller fortify


【解决方案1】:

由于愚蠢的声誉规则,我无法发表评论,所以我将把它放在答案中。您已经展示了“路径”的来源,但您没有提及“文件名”的来源。如果该变量的值来自不受信任的来源,那么这就是导致此问题的原因。您需要将该变量列入白名单,以便攻击者可以更改路径。一旦你知道你的白名单是好的,你就可以压制这个问题。单独的白名单不会阻止 Fortify 再次发现问题,因为它无法判断您何时加入白名单就足够了。

您也可以尝试将 Fortify 问题发布到他们的在线论坛https://protect724.hp.com。支持小组监控这些论坛。

【讨论】:

    猜你喜欢
    • 2016-06-18
    • 2022-05-16
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 2020-03-21
    • 2014-02-11
    • 2013-10-28
    • 2012-08-16
    相关资源
    最近更新 更多