簡體   English   中英

如何從Fortify掃描報告中修復以下代碼示例的“路徑操縱”問題

[英]How to fix ‘Path Manipulation’ issue from Fortify scan report for tthe following code sample

我有路徑操作問題。 以下代碼放置在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();
}

我認為問題在於,有人可能會以reportName = "..\\\\Windows\\\\Something important"欺騙請求,這顯然是安全缺陷。 您需要更改代碼,以使其不會從請求查詢字符串中讀取部分文件名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM