我正在使用HP fortify扫描代码。我尝试打开文件时收到Path Manipulation错误

时间:2015-10-28 09:19:54

标签: c# fortify

当我使用" FileSystem.FileOpen"时,我遇到了问题。我发布下面的代码。我正在从用户那里获取路径,并且在打开文件之前我已经验证了路径。我仍然在HP Fortify中获得相同的文件操作问题。

if ((File.Exists(moFrmIntComplaint.lblFilePath.Text)) && moFrmIntComplaint.lblFilePath.Text.IndexOfAny(System.IO.Path.GetInvalidPathChars()) >= 0)
                {
                    sFilePath = moFrmIntComplaint.lblFilePath.Text;
                    sFileName = Path.GetFileName(sFilePath);//moFrmIntComplaint.lblFileName.Text;
                    sFileDirectory = Path.GetDirectoryName(sFilePath);
                }
                if ((String.IsNullOrEmpty(sFilePath.Trim(' ')) == false) && (File.Exists(moFrmIntComplaint.lblFilePath.Text)) && (moFrmIntComplaint.lblFilePath.Text.IndexOfAny(System.IO.Path.GetInvalidPathChars()) >= 0) && !string.IsNullOrEmpty(moFrmIntComplaint.lblFilePath.Text))
                {
                    lFilePtr = FileSystem.FreeFile();
                    FileSystem.FileOpen(lFilePtr, sFilePath, OpenMode.Binary, OpenAccess.Read, OpenShare.Default, -1);
                    lFileSize = (int)FileSystem.LOF(lFilePtr);

1 个答案:

答案 0 :(得分:0)

检查验证逻辑,看看是否可以传递名为:

的文件

../../../cmdshell.aspx

../../../web.config

路径操作就是将服务器重定向到文件读取和写入的不合需要的位置。不要依赖文件系统权限。