我有一种情况,我想保护文件不受公共访问,但启用从php读取和写入。该文件包含密码等敏感信息。
问题在于
mysql
数据库。另外,我会尝试避免.htacess
个文件。
因此,如果我在网络根目录中创建一个文件夹,请说private
,然后执行
chmod 700 private
然后,如果要保护的文件是private/data
,我会
chmod 700 private/file
这是一个安全的设置吗?所以现在我可以从php
读取和写入文件,但公众无法访问该文件?
这是安全的设置吗?
答案 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调用时重定向。或者只是加密它。