.htaccess DENY FROM ALL帮助?

时间:2011-04-03 19:07:27

标签: php .htaccess

我有一个照片共享网站,用户可以编辑他们的图片隐私。一个主要问题是其他用户可以看到来自用户的已被隐藏的图片。所以我虽然在我的IMAGES目录中,只需将deny from all放在.htaccess文件中。

但这限制了所有图像的显示。

最好的方法是什么?

感谢
库尔顿

2 个答案:

答案 0 :(得分:1)

你可以使用mod重写和一个检索url文件的调度程序。调度员还会检查凭证。

示例:用户访问http://mysite.com/getimage/123

配置mod重写以将其转换为http://mysite.com/index.php?page=getimage&att=123。由于重写,除非您将重写模块配置为执行此操作,否则任何用户都不会访问index.php页面旁边的任何其他内容。

index.php是调度程序,检查页面是否确实存在。如果是,则调用处理getimage的控制器。 控制器getimage检查用户凭据,如果用户可以获取文件123,则显示123.jpg。

这只是多种解决方案的一种变体。这一切都取决于您的网站架构。

答案 1 :(得分:1)

在Web服务器上,只允许您将所有文件放在文档根目录下而不是在此之外的情况下,带有deny from all指令的.htaccess文件通常用于不允许http访问特殊目录和它是子目录。

不建议进行某种混淆(在MD5或SHA1等功能的帮助下创建目录名称)。

借助PHP函数提供图像,可以在您的案例中执行所需的所有必要权限检查。可以在此处找到如何实际返回文件的一个简单示例:

Return the contents of an image in php file?