我正在编写一个小型网站,并为会员登录。每个成员都有一个专用文件夹,我想知道如何拒绝所有人访问此文件夹,除非用户登录后才能访问该文件夹。
现在,我已经设置了类似的东西:
1)每个文件夹都有一个带有deny from all
2)当用户登录时,我使用PHP来识别用户并获取他的文件夹。我得到用户的IP地址,然后用
编辑.htaccess order deny,allow
deny from all
allow from 178.197.XXX.XXX
3)用户退出后,我将.htaccess重置为deny from all
有更好的方法吗?是否存在安全隐患?
答案 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文件。