我想创建一个自己的静态文件视图,该视图返回 GET 请求中定义的文件。该文件必须位于额外的目录中。URL 必须像/e?s=NAME_OF_FILE
. 我的问题是,黑客可以使用它/e?s=/PATH/TO/DATABASE
来从服务器获取任何文件。我已经有一个解决方法,但我认为有更好的解决方案。
我的代码:
path = os.path.abspath(os.path.join(script_path, filename))
if path.startswith(script_path):
# Good
else:
# Bad
这是针对“隐藏的静态文件”的,不应由服务器处理。