如何防止使用php公开下载文件?
我有一个脚本,只允许授权用户上传文件到某个文件夹 然而,我不知道如何防止人们在没有登录的情况下自由下载 我需要在php的解决方案 我在谷歌上搜索过,但还没有直接搜索到 目前在我的文档根目录中,我有一个名为admin的文件夹和一个名为uploads的子文件夹。所以只有管理员角色可以上传。编辑器和管理员都可以下载。在这种情况下我该怎么办如何防止使用php公开下载文件?,php,authentication,authorization,download,Php,Authentication,Authorization,Download,我有一个脚本,只允许授权用户上传文件到某个文件夹 然而,我不知道如何防止人们在没有登录的情况下自由下载 我需要在php的解决方案 我在谷歌上搜索过,但还没有直接搜索到 目前在我的文档根目录中,我有一个名为admin的文件夹和一个名为uploads的子文件夹。所以只有管理员角色可以上传。编辑器和管理员都可以下载。在这种情况下我该怎么办 请告知。将文件放在公共webroot目录之外的某个位置,或者将服务器配置为不提供文件。只要您的服务器能够愉快地使用有效的URL为所有内容提供服务,您就无法使用PHP
请告知。将文件放在公共webroot目录之外的某个位置,或者将服务器配置为不提供文件。只要您的服务器能够愉快地使用有效的URL为所有内容提供服务,您就无法使用PHP来防止这种情况
如果您的文件位于
/public\u html/
文件夹中,请将其从该文件夹中取出并放入例如/secret\u files/
,因此您的目录结构如下所示:
public_html/
index.html
admin/
admin_index.php
secret_files/
my_secret_file.txt
Web服务器仅配置为提供/public\u html/
目录中的文件,因此没有人可以访问它之外的目录(上面的技术术语)
为了让人们仍然能够下载这些文件,请按照cletus的建议进行操作,并使用PHP脚本“手动提供”这些文件。PHP仍然可以访问文件系统的这些其他部分,因此您可以将其用作守门人。回答有关如何使用PHP进行密码保护的问题:
应该可以解决您的问题。不要将文件存储在文档根目录下的目录中 相反,将它们移动到其他地方,然后PHP脚本可以通过编程确定是否有人可以下载它们,然后使用或类似的方法将它们流式传输给用户
您还可以将Web服务器配置为不提供来自此目录的文件,但仍然需要PHP来提供这些文件。不把它们放在文档根目录下更干净。那么,如果有人找到密码呢?如果他们找到了密码,很可能他们可以访问你的FTP,所以你就完蛋了。嗨,克莱特斯,我编程能力不强,所以我需要问你更多细节1)其他地方在哪里?目前在我的文档根目录中,我有一个名为admin的文件夹和一个名为uploads的子文件夹。所以只有管理员角色可以上传。编辑器和管理员都可以下载。在这种情况下,我该怎么办?@keisimone(1)将它们存储在文档根目录上方,可能是类似于htdocs或public_html的内容。@alex是的,我的所有文件都已在public_html:)中,因此它是public_html>admin>uploads@keisimone你能把它们移到docroot上面吗。因此,从公共html访问它们需要这样“../downloads/file.txt”@keisimone Yes或更高版本。默认情况下,您不能访问www.yoursite.com/downloads。