隐藏WWW以外的PHP文件以确保安全

时间:2010-08-06 02:57:04

标签: php security

我在我自己的小框架中有一个“globabVars.php”文档,其中包含数据库连接变量等...我认为在面向Web的目录之外存储以保持更安全。但是,那时我在想,这真的那么更安全吗?我的意思是,如果有人能够整体查看我的.php文件(没有服务器处理它们),他们就会在我的服务器中查看我的所有文件...

思想?

3 个答案:

答案 0 :(得分:5)

如果您不小心错误配置了apache,那么将配置文件移到Web根目录之外可以防止此文件泄露。例如,如果删除Apache的mod_php,则所有.php文件都将被视为文本文件。因为这个原因,我已经看到配置文件移动到生产系统上的Web根目录之外,它确实阻止了文件被泄露! (管理员在更新期间冻结了配置,doah!)。虽然这种情况不常发生。

如果攻击者可以控制其中一个功能的路径:file_get_contents()fopen()readfile()fgets(),那么他可以读取您系统上的任何文件。你还要担心sql注入。例如,MySQL下的这个查询可用于读取文件:select load_file("/etc/passwd")

要缓解此问题,请从PHP使用的MySQL用户帐户中删除FILE权限。还要执行chmod 500 -R /path/to/web/root,最后2个零会阻止任何其他帐户访问这些文件。您还应该使用chown www-data -R /path/to/web/root跟进,其中www-data是执行php的用户帐户,您可以通过执行<?php system('whoami');?>来解决这个问题。

答案 1 :(得分:2)

这意味着默认情况下没有人可以通过URL访问它。

如果您的docroot中的 ,则可以隐藏.htaccess,但将其存储在docroot上面只是更安全一点。

如果你的应用程序容易出现directory traversal attacks,你可以通过PHP阅读。

答案 2 :(得分:2)

是的,你是对的。差异非常小。