如何安全地对现有 Apache 网站上的博客文件夹进行分区

如何安全地对现有 Apache 网站上的博客文件夹进行分区

我非常清楚在不同的用户帐户下运行不同的网站的好处,这样可以限制单个 Web 应用程序受到攻击时造成的损害。我被指示在我们主要的公司域上安装一个 wordpress 博客作为域的子文件夹 (example.com/blog),而不是子域 (我相信这是一种 SEO 策略)。我必须将博客与主电子商务网站 (可以访问我们的用户帐户数据库) 分开,但我看不出使用 suexec 进行此操作的明确方法。

我唯一的想法是将博客安装在单独的服务器上,并在主站点上使用 mod_proxy 作为反向代理。但是,这意味着我们必须在两个不同的地方维护主网站模板(博客必须与主站点集成,并使用相同的页眉、页脚等)。如果这是唯一的解决方案,那么这可能是我会选择的道路,但我想知道是否有人有其他想法,我将不胜感激。

答案1

首先,确保电子商务和博客具有单独的数据库和单独的 mysql 帐户。确保这些帐户无法访问彼此或名为 的数据库mysql。确保它们都没有FILE权限,这是您可以授予 Web 应用程序的最危险的权限,在这种情况下,即使 Apache/PHP 被锁定,攻击者也可以使用 MySQL 读取和写入其他应用程序的文件。

suexec 的用途是让 php 应用程序以特定用户身份运行。这对于共享主机和您正在做的事情来说非常理想。基本上创建 2 个用户帐户,并有 2 个应用程序目录。确保这些用户无法访问彼此的目录。(类似于chown wordpress -R /var/www/blog && chmod 550 -R /var/www/blog)。然后为 suexec 提供正确的配置

我也会跑phpsecinfo通过将 shell 设置为 /bin/false 来禁止这两个账户访问 shell。考虑安装 WAF,例如mod_security

答案2

反向代理可能是可行的方法——即使博客使用相同的页眉和页脚外观,它可能也不会共享完全相同的编码,因此无论如何您都会遇到 2 个代码库的问题。

就我个人而言,我会设置一个前端捕手并反向代理所有请求,以便所有应用服务器实际上都受到双重防火墙保护。

相关内容