好的,所以通常如果任何种类的'路径操作'问题出现在您的分析软件中,它们似乎只是一个解决方案,不允许用户选择他们自己想要的路径。路径操作解决方案?
我已经生成了这个简单的方法,可以在防范这些攻击方面做一些验证。
private const string directory = "Windows";
private static readonly string[] extensions = {".pdf", ".txt"};
string userInput = @"..\windows\..\krnl386.exe";
private static bool Validate(string filePath)
{
if (string.IsNullOrEmpty(filePath))
{
return false;
}
if (filePath.ToUpper().Contains(directory.ToUpper()))
{
return false;
}
string ext = Path.GetExtension(filePath);
for (int x = 0; x < extensions.Length; x++)
{
if (ext.Equals(extensions[x]))
{
return true;
}
}
return false;
}
现在就这两个检查有助于防止任何“路径操作”的?你看到什么孔这个方法吗?这适用的应用程序永远不需要访问Windows目录,也不会使用多于.pdf
或.txt
文件扩展名。
使扩展区不区分大小写的好点。我在“MyWindowsStuff”上看到你的观点,但我认为这将是一种罕见的情况,并且不会认为我必须为这种罕见情况进行调整。嗯..从来没有想过短名,可以考虑一下比较。 –
@ programmer117:查看我关于“windows”检查的更新。 –
太棒了!这会工作得更好。我明白你的意思。谢谢您的帮助! –