防止代码注入的服务器配置

防止代码注入的服务器配置

背景故事: 前几天,我在清理共享主机上被黑客入侵的网站空间时,在网站目录中发现了一个脚本,该脚本允许攻击者将代码注入网站目录中的所有 php 和 html 文件。它可以访问网站目录中的所有内容,但我不确定该文件具有哪些用户权限。

问题: 我认为,由于缺乏服务器配置选项,很难阻止在共享 Web 主机上运行的 php 脚本访问其他 Web 文件(php、html 等)。有没有办法配置 Linux Apache http 服务器(您拥有完全 root 访问权限),以便即使攻击者能够将这样的脚本上传到 Web 目录,也无法修改服务器上的其他文件?

答案1

您至少应该:

  • 限制 Web 服务器用户有权写入的 Web 可访问目录。(或者根本没有)
  • 不要处理 Web 服务器允许写入的目录中的 PHP、CGI 或任何其他脚本。

suPHP 之类的工具对于解决这类问题不太有用,因为更改运行 PHP 脚本的用户通常会授予他们写入不该写入的地方的权限...解决这个问题的唯一方法是管理更多的用户(一组网络服务器使用的用户,一组允许更新文件的用户),并且你会失去在运行脚本之前测试文件所有权是否干净的主要优势之一。

答案2

简短的回答是肯定的。只要您拥有 root 访问权限,您就可以保护您的源文件免受 Apache 用户的修改。但如果您的软件依赖于此类修改(例如,如果.php配置文件应该可以从 Web 应用程序中编辑),那么在不停止应用程序按设计运行的情况下,将无法阻止 Apache 用户修改您的源文件。

我敢打赌,问题出在您的 FTP/SFTP 客户端配置中,而不是您的共享主机 Apache 服务器配置中。我认为您的 PC 被木马病毒感染,木马应用程序使用您 FTP/SFTP 客户端的凭据将恶意代码上传到您的帐户。这种情况如今相当常见。

答案3

我最喜欢的编译模块是 itk,它允许 apache 在每个 vhost 上以不同的 uid/gid 运行。

http://mpm-itk.sesse.net/

它相当新,所以通常默认情况下不会编译。它比 suexec 或 phpsuexec 更快。您可以配置 vhost 条目以作为特定用户运行。然后您可以将每个用户的 webroot chmod 为 700,这样只有该用户可以进入。

然后,您可以运行 mod_security 之类的模块来帮助阻止 sql 攻击

答案4

安装类似 supphp 的东西。 http://www.suphp.org/Home.html

然后一直检查服务器,以确保没有用户执行诸如 chmod 777 目录之类的愚蠢操作。

相关内容