【发布时间】:2010-11-22 05:31:24
【问题描述】:
我知道避免接受用户输入然后用来选择读取/写入文件的路径的可靠安全建议。但是,假设您有一个要保留的基本目录(例如 ftp 文件夹的根目录),您如何最好地确保给定的用户输入将我们保留在该文件夹中?
例如,
Path.Combine(_myRootFolder, _myUserInput)
仍然可以将我们带到 _myRootFolder 之外。这也可能是狡猾的
newPath = Path.Combine(_myRootFolder, _myUserInput)
if (newPath.StartsWith(_myRootFolder))
...
从用户那里得到类似“/back/to/myrootfolder/../../and/out/again”的东西。对此有何策略?我是否错过了一种我可以使用的非常明显的 .NET 方法?
【问题讨论】:
标签: c# file security directory