好的,所以通常如果任何種類的'路徑操作'問題出現在您的分析軟件中,它們似乎只是一個解決方案,不允許用戶選擇他們自己想要的路徑。路徑操作解決方案?
我已經生成了這個簡單的方法,可以在防範這些攻擊方面做一些驗證。
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」檢查的更新。 –
太棒了!這會工作得更好。我明白你的意思。謝謝您的幫助! –