常见的 PHP 设置不安全?

Pon*_*tus 10 security php apache-2.2

我在大学的系统管理部门工作,偶然发现了一些可能很常见但对我来说非常震惊的事情。

所有 public_html 目录和 web 区域都存储在 afs 上,具有 web 服务器的读取权限。由于允许用户在他们的 public_html 中有 php 脚本,这意味着他们可以从 php 中访问彼此的文件(以及主要的 web 文件!)。

这不仅使任何 .htaccess 密码保护完全无用,而且还允许用户读取包含 mysql 数据库密码和类似敏感信息的 php 源文件。或者,如果他们发现其他人拥有 Web 服务器具有写访问权限的目录(例如用于个人日志或保存提交的表单数据),他们可以将文件存储在这些帐户中。

一个简单的例子:

<?
  header("Content-type: text/plain");
  print file_get_contents("/afs/example.com/home/smith/public_html/.htpasswd"); 
?>
Run Code Online (Sandbox Code Playgroud)

这是个常见的问题吗?你通常如何解决它?

更新:

感谢您的投入。不幸的是,似乎没有简单的答案。在这样的大型共享环境中,用户可能不应该有这么多选择。我能想到的最好方法是在所有“public_html”目录的主配置中设置“open_basedir”,运行 suphp 并且只允许干净的 php(没有 cgi 脚本,运行带有反引号的外部命令等)。

像这样改变政策会破坏很多事情,并且很可能让用户拿起他们的干草叉追我们......如果我们决定如何改变设置,我会与我的同事讨论并在此处更新。

cst*_*mas 8

可以使用 suphp,它使用其所有者的 uid 运行 php 脚本。

http://www.suphp.org