2014-01-14 55 views
4

有沒有一種安全的方式從用戶獲取「路徑字符串」,在根目錄中生成 ,同時避免目錄遍歷? 某種「受保護的mkdir()」。是否有一個安全的「mkdir()」類似的函數?

可以說,根目錄是 - >「c:/ test」 避免用戶輸入 - >「c:/test/../windows/abc.exe」 非常感謝。

+1

+1看到我們今天所有的安全問題,應該有一個。 –

+2

你在這裏得到的問題是決定哪些文件夾沒有限制,'..'相對路徑在許多情況下是可以接受和安全的。對於管理員來說,這對於限制對系統文件夾的訪問(在Windows中也可以這樣做!)來說更是一個問題。我想這個問題是從Windows的早期版本開始的,用戶默認將用戶設置爲管理員。 – Skizz

回答

1

據我所知,沒有。您需要解析所提供的路徑並自行清理(無論如何,即使在安全環境中操作,這也是一種很好的做法)。如果你在* nix下運行,我會建議使用chroot(或者等效的)來限制文件系統的訪問,不幸的是windows不支持(除了可以作爲託管的Windows 8應用程序的一部分)。

假設您要自己清理它,不要忘記,以及'..'符號,還有交匯點要考慮(很少使用的符號鏈接的ntfs實現)。

+0

更好的是,啓動一個OSS項目,收集這些「無辜」的圖書館功能並提供安全的功能。 –

相關問題