我设置了一台 Ubuntu 14 服务器(我使用的是 LAMP Stack),它目前托管着我创建的一个网站。我已将一个 zip 文件上传到那里,任何知道链接的人都可以下载它。然而,这很快就会出现问题。假设文件可以转到如下路径:
homepage.com/src/file1.zip
任何有足够好奇心的人都可以继续输入homepage.com/src/
并查看整个目录,然后开始下载他们可能在那里看到的其他文件。这也不会阻止他们尝试访问其他文件夹,就像homepage.com/source/
尝试找出文件夹一样。
为了防止这种情况,我的想法是为我的文件夹/文件创建一个“AuthFile”,这样当任何人偶然发现它时,他们必须输入正确的用户名密码才能下载它。它类似于按照本教程所示保护 phpMyAdmin 页面,并会出现以下提示:
但是,在创建 AuthFiles 时,我认为我不能将其应用于文件夹或文件。因此,我的主要问题是:
如何在下载文件之前提示用户输入用户名密码组合?
如果那不是一个选择,那么你们如何控制谁可以在服务器上下载某些文件,并确保没有人设法获取你们的文件?
非常感谢任何帮助和指导。
答案1
您想要的是 apache 中的 .htaccess。
查看Apache 文档了解详情。
基本上,.htaccess 允许在文件夹级别更改 Apache 的配置。您只需将一个名为 .htaccess 的文件放在文件夹中,然后编辑它。对于基本身份验证,您首先需要创建一个凭证文件:
sudo htpasswd -c /etc/apache2/.htpasswd username
然后您可以在要保护的文件夹中放置一个名为.htaccess的文件,内容如下:
AuthType Basic
AuthName "Protected"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
.htpasswd 的路径可以自由选择,但请注意将其放入公众无法访问的文件夹中。