4 php directory directory-traversal
我处于这样一种情况,我需要允许用户下载从URL动态确定的文件.在下载开始之前,我需要进行一些身份验证,因此下载必须先通过脚本运行.所有文件都将存储在Web根目录之外,以防止手动下载.
例如,以下任何一个都可以是下载链接:
基本上,文件夹深度可以变化.
为了防止目录遍历,比如说:http: //example.com/downloads/../../../../etc/passwd 我显然需要对URI进行一些检查.(注意:我没有选择将此信息存储在数据库中,必须使用URI)
以下正则表达式是否可以确保用户不输入可疑内容:
preg_match('/^\/([-_\w]+\/)*[-_\w]+\.(zip|gif|jpg|png|pdf|ppt|png)$/iD', $path)
Run Code Online (Sandbox Code Playgroud)
我有什么其他选择来确保URI是理智的吗?可能在PHP中使用realpath?