Php 如何保护包含上载文件的文件夹?

Php 如何保护包含上载文件的文件夹?,php,Php,如何保护包含上载文件的文件夹 我有一个包含我上传的所有文件的文件夹,我想如果用户试图更改url或传递以显示所有文件,浏览器会将他重定向到另一个页面,如本例所示 www.tet.php/folder/text.doc 如果用户试图写入(www.tet.php/folder)以显示所有文件,则自动将其重定向到www.tet.php 或者任何人,请告诉我如何巧妙地消失/folder/我不了解php,但我正在考虑一个解决方案,不知道php是否能够处理: 您可以将“UsersUploads”文件夹放在网站

如何保护包含上载文件的文件夹

我有一个包含我上传的所有文件的文件夹,我想如果用户试图更改url或传递以显示所有文件,浏览器会将他重定向到另一个页面,如本例所示

www.tet.php/folder/text.doc

如果用户试图写入(www.tet.php/folder)以显示所有文件,则自动将其重定向到www.tet.php


或者任何人,请告诉我如何巧妙地消失/folder/

我不了解php,但我正在考虑一个解决方案,不知道php是否能够处理:


您可以将“UsersUploads”文件夹放在网站目录之外,因此如果您的网站位于“c:\website\example.com”上,您可以将“UsersUploads”放在“c:\UsersUploads”上,就像您的web服务器无法控制此文件夹及其文件一样,并且您的网站代码仍然可以作为正常的物理路径访问此目录。

如果您使用Apache,您有两种解决方案:

  • 将上载的文件文件夹移出 您的DocumentRoot的根(文档的根) 可从中访问的文件夹 网络)

  • 使用该文件夹中的.htaccess文件 阻止对此文件夹的访问

.htaccess使用身份验证访问文件夹的一个小示例:

AuthName "Page d'administration protégée"
AuthType Basic
AuthUserFile "/var/www/uploadedfiles/.htpasswd"
Require valid-user

如果您使用IIS,则只需通过IIS管理控制台拒绝每个人对该文件夹的访问。您还可以拒绝除某些IP地址或地址范围之外的任何访问。

只需扩展@Clement的回答,包括关于重定向到失败页面的部分:

AuthName "Page d'administration protégée"
AuthType Basic
AuthUserFile "/var/www/uploadedfiles/.htpasswd"
Require valid-user
ErrorDocument 403 www.urlToRedirectTo.com

另外,.htpasswd应该放在web根目录之外,并且应该只包含
username:pasword
。密码应该是散列的。您可以很容易地在网上找到实用程序来为您创建这些文件。

您的web服务器是什么?iis apache或?oky的可能副本以及我如何设置密码,我不知道有关HTAccess的任何事情使用此表单生成加密密码。将结果页面上文本框中的文本复制到名为
.htpasswd
的文件中,该文件位于
AuthUserFile
行指向的路径中。同样,出于安全考虑,这不应该在web根目录中。