限制用户对目录的访问

时间:2017-06-14 15:24:41

标签: php .htaccess security

我正在编写一个小型网站,并为会员登录。每个成员都有一个专用文件夹,我想知道如何拒绝所有人访问此文件夹,除非用户登录后才能访问该文件夹。

现在,我已经设置了类似的东西:

1)每个文件夹都有一个带有deny from all

的.htaccess

2)当用户登录时,我使用PHP来识别用户并获取他的文件夹。我得到用户的IP地址,然后用

编辑.htaccess

order deny,allow deny from all allow from 178.197.XXX.XXX

3)用户退出后,我将.htaccess重置为deny from all

有更好的方法吗?是否存在安全隐患?

1 个答案:

答案 0 :(得分:1)

不要使用IP。一个用户不等于一个IP。

将文件夹存储在Web服务器的文档根目录之外。这样,Web服务器本身就无法直接提供文件。

即,不要像http://my.site.com/path/to/actual/file那样直接提供文件。而是要求通过像http://my.site.com/getfile.php?file=name这样的代理PHP脚本来请求文件。该脚本将检查用户是否已登录,检查该用户目录中是否存在名为name的文件,然后使用readfile()或类似内容将其写入。

此外,一般情况下,Web服务器进程运行的用户永远不应该将您的文件写为 - 特别是 .htaccess文件。