我正在使用HP Fortify来解决我的应用程序中的安全问题。 我有一段代码如下Fortify引发错误。
Fortify结果说:
fileName .cs中的方法DownloadAttachment()包括未经验证的 lineNo 上的HTTP响应标头中的数据。这可以实现攻击 例如缓存中毒,跨站点脚本,跨用户污损, 页面劫持,cookie操作或打开重定向。
代码 -
public ActionResult DownloadAttachment(string fullFilePath)
{
var bytes = System.IO.File.ReadAllBytes(fullFilePath);
return File(bytes, MimeMapping.GetMimeMapping(fullFilePath), Path.GetFileName(fullFilePath));
}
这里有什么威胁以及如何解决这个问题?有什么建议吗?
答案 0 :(得分:2)
惠普是对的,这是一个问题但不是他们所说的方式 - 这里的威胁是你有一个动作方法,它将加载网络服务器可以读取的任何文件并让访问者下载它。这可能很容易导致其他攻击,具体取决于某人下载的内容和您的网络设置。
你需要做的是更仔细地处理附件,而不是一般地处理附件 - 这可能只是将文件名作为参数并查看给定的文件夹。例如。