2011-04-07 59 views
1

我如何保护包含上传文件的文件夹?如何保护包含上传文件的文件夹?

我有文件夹,包括由我上传的所有文件,我想如果用户试图更改URL或者通过显示所有文件,浏览器重定向他到另一个页面这样的例子

www.tet.php /文件夹/text.doc

如果用户尝试写(www.tet.php /文件夹),以显示所有文件重定向他自动www.tet.php

或任何一个,请告诉我取巧的办法消失/文件夹/

+0

什么是您的网络服务器? IIS的Apache的还是? – 2011-04-07 09:00:28

+1

可能重复[我如何防止公众使用PHP下载文件?](http://stackoverflow.com/questions/2339649/how-do-i-prevent-public-downloads-of-files-using-php) – deceze 2011-04-07 09:01:53

回答

0

我不知道PHP,但一个解决方案我想和不知道如果PHP可以处理或不:

你可以把你的“UsersUploads”文件夹放在网站目录之外,所以如果你的网站存在于“c:\ website \ example.com”你可以把“UsersUploads”放在那里“c:\ UsersUploads”,就像你的web服务器不能控制这个文件夹及其文件一样,你的网站代码仍然可以作为普通物理路径访问这个目录。

0

如果您使用Apache,你有2个解决方案:

  • 将您的文件夹uploaded_files出你的DocumentRoot(该文件夹 是从 网络访问的根)的 。

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

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

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

如果您使用IIS,那么你必须通过你们IIS管理为拒绝访问该文件夹为大家安慰。除了某些IP地址或地址范围外,您还可以拒绝任何访问。

0

只是为了扩大对@纪的答案,包括有关重定向到一个页面上失败的部分:

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。密码应该散列。您可以轻松地在线查找实用程序以为您创建这些文件。

+0

oky和我如何设置密码,我不知道有关htaccess的任何事情 – user646645 2011-04-07 09:46:48

+0

使用此表格http://www.htaccesstools.com/htpasswd-generator/生成加密密码。将结果页上文本框中的文本复制到位于AuthUserFile行指向的路径中的名为'.htpasswd'的文件中。同样,出于安全原因,这应该不在Web根目录中。 – 2011-04-07 09:56:02