保护Web根目录中的文件,但允许从php访问

时间:2014-06-13 17:12:30

标签: php

我有一种情况,我想保护文件不受公共访问,但启用从php读取和写入。该文件包含密码等敏感信息。

问题在于

  • 我不能把文件放在web根目录之外(服务器安全限制从php访问)
  • 我想避免使用mysql数据库。

另外,我会尝试避免.htacess个文件。

因此,如果我在网络根目录中创建一个文件夹,请说private,然后执行

chmod 700 private

然后,如果要保护的文件是private/data,我会

chmod 700 private/file

这是一个安全的设置吗?所以现在我可以从php读取和写入文件,但公众无法访问该文件?

这是安全的设置吗?

3 个答案:

答案 0 :(得分:2)

PHP作为与Web服务器相同的用户运行,因此如果PHP可以读取它,那么您的Web服务器也可以读取(反之亦然)。

如果您不想使用.htaccess,还有另一种方法:将文件另存为.php文件。即使有人从网络访问该文件他们也看不到来源,他们可能只是得到一个白页或错误,具体取决于文件中的确切内容。

答案 1 :(得分:1)

如果您正在运行suPHP或fastCGI php,则可以使用类似于您所描述的设置来限制对文件的访问。否则,PHP将使用与Web服务器相同的用户,并且也可以通过URL访问PHP可以访问的任何文件。

答案 2 :(得分:1)

如果想要保持规定的限制(这是相当奇怪的),并且(我猜)您不希望/有权访问apache配置指令,请考虑将PHP添加到某个组并仅授予该组对该文件的权限,即。 apache无法读取(如果它不在root / wheel中)。

或者使它成为一个有效的.php文件(因此只有php会在请求文件时调用它),它不会返回任何内容,或者在使用php调用时重定向。或者只是加密它。