2017-06-14 95 views
0

我使用会员登录编码了一个小型网站。每个成员都有一个专用文件夹,我想知道如何拒绝所有人访问此文件夹,除了在登录时形成用户。限制用户访问目录

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

1)每个文件夹有一个.htaccess与deny from all

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

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

3编辑的.htaccess)一旦用户登录了,我在的.htaccess再次恢复到deny from all

有没有更好的办法?是否存在安全风险?

回答

1

请勿使用IP。一个用户不等于一个IP。

将文件夹存储在Web服务器的文档根目录之外。这样,文件永远不会由Web服务器本身直接提供。

也就是说,不要直接提供像http://my.site.com/path/to/actual/file这样的文件。而是要求通过代理PHP脚本来请求文件,如http://my.site.com/getfile.php?file=name。该脚本会检查用户是否已登录,并检查该用户目录中是否存在名为name的文件,然后用readfile()或类似文件将其发送出去。

此外,一般来说,您的文件不应该由用户写入,Web服务器进程运行时为 - ,尤其是您的.htaccess文件。