当我使用" 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);
答案 0 :(得分:0)
检查验证逻辑,看看是否可以传递名为:
的文件 ../../../cmdshell.aspx
或
../../../web.config
路径操作就是将服务器重定向到文件读取和写入的不合需要的位置。不要依赖文件系统权限。