我在我的 Python/Flask Web 应用程序中使用用户提供的名称作为路径组件:例如,用户创建了一个名为“hello”的项目,提示我的 Web 应用程序创建一个名为“data/hello/”的文件夹来存储文件用户将上传。我想知道如何清理用户提供的名称,例如,用户不能输入“../hello”并在不同的目录中创建文件夹。我能想到的最好的基于路径名的解决方案是这样的:
import os.path
rpath = os.path.relpath(input_path)
safepath = rpath[rpath.index('../'):]
有没有更好的方法来确保我的网络应用程序不会访问目录之外的data
文件?谢谢!