Apache文件对PHP的权限,但不能直接访问


Apache file permissions for PHP but not for direct access

我安装了一个Apache服务器,并尝试了一下。我不明白的是如何正确地设置这个设置的权限:

我不希望我的文件可以被外部访问(即./files/file1.foo) -这个目录中有很多文件,我不希望人们能够读取它们。到目前为止一切顺利。在我的例子中,chmod o+r允许读取,反之亦然。

然后我有一个PHP脚本处理会话与每个用户,谁拥有一个文件,应该能够查看它,但只有它,而不是其他文件。假设文件是一张图片。我写<?php ... echo "<img src='"files/file5.foo'"> ?>来显示这个文件。但是这行不通,因为PHP也没有访问该文件的权限。

如何处理这个问题?

对于这些需求,最好的解决方案是将受保护的文件存储在公共HTML之外,并使用PHP脚本为它们提供服务。然后,PHP可以检查当前用户是否应该被允许访问所请求的文件。

看一下这个例子。对于内联图像,不要设置文件传输头,只输出内容(您仍然可以输出内容类型的头,但这不是必需的)。

相关文章: