我在我自己的小框架中有一个"globabVars.php"文档,其中包含数据库连接变量等...我认为在面向Web的目录之外存储是很整洁,以保证它更安全.但是,当时我就在想,是不是真的THAT更安全?我的意思是,如果有人能够整体查看我的.php文件(没有服务器处理它们),他们就会在我的服务器中查看我的所有文件...
思考?
如果您不小心错误配置了apache,那么在Web根目录之外移动配置文件可以防止此文件泄露.例如,如果删除Apache,mod_php则所有.php文件都将被视为文本文件.因为这个原因,我已经看到配置文件移动到生产系统上的Web根目录之外,它确实阻止了文件被泄露!(管理员在更新期间冻结了配置,doah!).虽然这种情况不常发生.
如果攻击者可以控制这些功能之一的路径:file_get_contents(),fopen(),readfile()或者fgets()那么他可以读取系统上的任何文件.你还要担心sql注入.例如,MySQL下的这个查询可以用来读取文件:select load_file("/etc/passwd").
要缓解此问题,请FILE从PHP使用的MySQL用户帐户中删除权限.另外做一个chmod 500 -R /path/to/web/root,最后2个零保持任何其他帐户访问文件.您还应该使用chown www-data -R /path/to/web/rootwww-data是执行php的用户帐户进行跟踪,您可以通过执行此操作来解决这个问题<?php system('whoami');?>.