Kim*_*cks 10 php authentication authorization download
我有一个脚本,只允许授权用户将文件上传到某个文件夹.
但是我不知道如何防止人们在没有登录的情况下自由下载.
我需要php中的解决方案.
我已经google了一下,但还没有直截了当.
目前在我的文档根目录中,我有一个名为admin的文件夹和一个名为uploads的子文件夹.因此只有管理员角色才能上传.编辑和管理员都可以下载.在这种情况下我该怎么办?
请指教.
dec*_*eze 13
将文件放在公共webroot目录之外的某个位置,或将服务器配置为不提供文件.只要您的服务器很乐意使用有效的URL提供服务,您就无法使用PHP来防止这种情况发生.
如果您的文件位于/public_html/文件夹中,请将它们从该文件夹中取出并放入例如/secret_files/,因此您的目录结构如下所示:
public_html/
index.html
admin/
admin_index.php
secret_files/
my_secret_file.txt
Run Code Online (Sandbox Code Playgroud)
Web服务器仅配置为提供目录中的/public_html/文件,因此没有人可以访问外部目录(上面的技术术语).
为了让某人能够下载这些文件,请按照cletus的建议,并readfile通过PHP脚本"手动"提供文件.PHP仍然可以访问文件系统的这些其他部分,因此您可以将其用作网守.
不要将文件存储在文档根目录下的目录中.
而是将它们移动到其他地方,然后PHP脚本可以以编程方式确定是否有人可以下载它们然后使用readfile()或类似的东西将它们流式传输给用户.
您还可以将Web服务器配置为不从此目录提供文件,但无论如何您都需要PHP来提供它们.只是不把它们放在文档根目录下更清洁.