我正在使用 HP fortify 扫描代码。尝试打开文件时出现路径操作错误

I am scanning the code using HP fortify. I am getting Path Manipulation error when I try to open the File

我在使用 "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);

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

的文件

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

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

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