保护目录不受直接URL访问

时间:2012-07-22 20:36:30

标签: php mysql apache .htaccess mod-rewrite

需要一些帮助...

我需要保护{b}直接FOLDERS 访问DIRECTORY中的所有URL。我可以使用.htaccess执行此操作,如果可以,如何执行此操作?或者他们是一种更安全的方法?

这是我的情况,我允许用户上传一个pdf文件。

该文件将发送至/uploads/{userid}/{filename}

这一切都很有用,但问题是如果有人知道PDF{userid}

,可以直接访问{filename}

我希望保护uploads目录和所有子目录免受直接URL访问。

但同时我的数据库(MySQL)需要能够浏览uploads目录和子目录以确认已上载PDF文件并让管理员从管理控制面板下载文件。

现在我不是要你写我的代码。我只是让你了解我的规格,因为我认为有人可能会建议使用htpasswd,但我认为我不能按照我的要求使用该解决方案。

如果你有一个简单的解决方案,或者如果你能指出我正确的教程,请这样做。

谢谢!

1 个答案:

答案 0 :(得分:4)

正如Fabio指出的那样 - 最好将这些文件保留在Web根目录之外。但是你仍然可以使用.htaccess来保护文件。除非您不小心删除.htaccess或sysadmin更改了主要配置(有时会发生),否则它们将受到保护。

只需将.htaccess放入要保护的目录中,然后在.htaccess中添加一行:

deny from all