我試過很多不同的方法fileInfo
,filestream
等等,並且無法繞過File.Create(DirName & fileName)
上的漏洞提出任何建議,或者這只是一個誤報?惠普Fortify File.Create引發路徑操縱漏洞
DirName=ConfigurationManager.AppSettings("DirectoryName")
Dim fileName As String = PatientLastName & "_" & PatientFirstName & "_" & CurrentPatEntityID & ".pdf"
For Each c In Path.GetInvalidFileNameChars()
If fileName.Contains(c) Then
fileName = fileName.Replace(c, String.Empty)
End If
Next
Dim stream As FileStream = File.Create(DirName & fileName)
stream.Write(FinalContents, 0, FinalContents.Length)
stream.Flush()
stream.Close()
stream.Dispose()
最有可能的Fortify的指出了這一點,因爲作爲文件名可變的脆弱性。我假設PatientLastName,PatientFirstName包含來自用戶提供的數據。這意味着攻擊者可以欺騙這個變種,例如.. \ .. \ .. \ c:這是最常見的路徑穿越攻擊。但似乎你用for循環解決了這種可能性。 - 我不知道VB我只是猜測。如果你認爲你解決了路徑遍歷,並且沒有辦法繞過(比如..%2F ..%2fc:URL編碼形式),那麼它只是誤報。 – 2014-11-05 19:12:56