如何处理被黑的WordPress网站

在本文中,我们将讨论最常见的 WordPress 攻击类型、如何识别它们以及修复它们的不同方法。如果您遇到此类问题,我们强烈建议您联系专业的网站开发人员以获得进一步协助。有关提升主机账户安全性的更多指导,请参阅此指南

重要提示: 在进行任何更改之前,请为您的网站创建完整备份。 

请注意: 为降低未来 WordPress 被攻击的风险,请定期使用杀毒工具扫描您的主机账户,删除所有恶意或可疑文件,并保持所有网站插件和主题为最新版本。

  1. 缺失默认文件

  2. 如何替换缺失的 WordPress 文件

  3. 如何替换所有默认 WordPress 文件

  4. 缺失主题或插件文件

  5. 恶意重定向

缺失默认文件

虽然多种不同的问题都可能导致默认文件丢失或被更改,但最常见的原因是恶意软件注入到您的 WordPress 安装中。幸运的是,我们 Web 和主机服务器上的杀毒工具可以自动检测并隔离受感染的文件。

如果您的核心 WordPress 文件被感染,您可能会遇到以下症状:

  • 空白页面;

  • 500 内部服务器错误;

  • 出现 “此站点遇到技术问题” 错误(WordPress 5.2.2 引入);

  • 或其他类似错误。

要解决此问题,只需按照以下步骤操作。

检查您网站的 error_log 文件

要确定您网站出现问题的原因,请查看 error_log 文件。该文件会记录您网站遇到的所有严重错误。

您可以在 cPanel 账户 > “文件管理器”菜单 > WordPress 安装根目录中找到它。 

进入域名根文件夹后,查找 error_log 文件。如果存在,请按以下步骤操作:

  1. 右键点击该文件,然后选择 查看


  2. 在日志中,您可能会看到如下错误:“No such file or directory in…”,后面跟着缺失文件的路径。这表明有必需文件缺失,导致网站无法正常运行。

    例如:

    /home/cPuser/public_html/wp-settings.php

  3. 要恢复缺失的文件,请向下滚动至本指南的“如何替换缺失文件部分。

启用 display_errors PHP 选项

如果您的网站根目录下没有 error_log 文件,您可以在 cPanel 账户中启用 display_errors PHP 选项。此设置可让错误信息直接显示在网站上,更方便定位问题。

重要提示: 出于安全考虑,排查完毕后请务必关闭 display_errors

您可以通过以下方式启用 PHP 选项:

  • 通过 php.ini 

除了 cPanel 的“PHP Tweaks”菜单外,您还可以通过 php.ini 文件直接为网站调整某些设置,只需在文件中添加/编辑相应行即可。 

要启用 display_errors 选项,您需要在文件中添加以下行:

display_errors=1

您可以在网站根文件夹新建一个 php.ini 文件并添加该行,或按照以下步骤修改系统生成的文件。

  1. 登录您的 cPanel 账户并进入“文件管理器”菜单。

  2. 确保设置中启用了“显示隐藏文件(点文件)”选项:


  3. 导航至以下目录: /home/cPanel_user/.system-php/ini


  4. 选择分配给您域名的 PHP 版本,然后选择该域名的目录。例如,完整路径可能如下:

    /home/cPanel_user/.system-php/ini/7.0/testwebsite.com

  5. 右键点击 php.ini 文件并选择 编辑

  6. 在文件中添加以下行:

    display_errors=1

  • 通过 .htaccess


要通过 .htaccess 文件启用 display_errors PHP 选项,您需要在“文件管理器”中编辑网站根目录下的该文件,并添加以下行:

php_value display_errors 1

有关查找 .htaccess 文件的详细步骤,请参阅此文章。 

更改完成后,点击 保存

如何替换缺失的 WordPress 文件

WordPress 采用简单有序的文件结构,这使得恢复丢失或损坏的文件相对容易。强烈建议替换默认核心文件,因为这样可以确保所有被恶意软件感染的文件都能完全恢复。但请谨慎操作:如果操作不当,替换某些文件或文件夹可能导致数据丢失。

请按照以下步骤替换缺失的 WordPress 文件:

  1. 登录您的 cPanel 并进入 Softaculous 应用安装器

  2. 在临时子目录中创建新的 WordPress 安装。为此,请点击 WordPress 图标,然后选择 安装


  3. 您将被重定向到安装设置页面。在此,从下拉菜单中选择相关域名,并在 目录 字段中输入子文件夹名称。

    在本例中,我们使用“fix”子文件夹进行 WordPress 安装:


    注意:替换所有默认文件会将您现有的安装更新为临时“fix”安装所用的版本,混用不同版本的文件可能导致系统冲突并破坏网站功能。

    如果需要保持当前 WordPress 版本,或只打算替换特定文件,请在 /wp-includes/version.php 文件中检查您网站的版本,并确保新安装使用相同的 WordPress 版本:


  4. 您可以在安装窗口直接选择新安装的 WordPress 版本:


  5. 所有设置配置完成后,点击 快速安装 或滚动到安装页面底部点击 安装。 

  6. 新的 WordPress 安装完成后,其文件将出现在“文件管理器” > 您域名的根目录。双击打开该文件夹:


  7. 要替换特定缺失文件(如 wp-settings.php),请在新安装目录中找到该文件。

  8. 之后,将该文件移动到您网站当前的根目录:右键点击文件 > 点击 移动 > 输入您网站根文件夹路径 > 点击 移动文件: 


  9. 完成后,缺失文件已恢复,您的网站现在应能正常加载。

如何替换所有默认 WordPress 文件

在为网站替换所有默认 WordPress 文件的过程中,步骤 1-6 与“如何替换缺失的 WordPress 文件”部分相同。 

完成这些步骤并创建新的 WordPress 安装后,如需替换网站根文件夹中的所有默认文件,请按以下步骤操作:

  1. 打开新的 WordPress 安装根文件夹:


  2. 在新安装文件夹中,删除以下文件和文件夹:


    • .htaccess

    • wp-config.php

    • wp-content

      这些文件和文件夹包含您网站的配置和内容,必须保持不变。

  3. 然后,将剩余文件移动到主网站的根目录。为此,请使用 全选按钮 > 点击 移动 > 输入您网站根文件夹路径 > 点击 移动文件


  4. 您的 WordPress 核心文件已全部替换。请访问网站确认一切加载正常。

    如果网站仍显示错误,请再次检查 error_log。大多数情况下,其他问题是由于主题或插件文件缺失导致的。

缺失主题或插件文件

缺失主题或插件文件可能有多种原因,但最常见的是恶意软件感染并删除了 WordPress 安装的重要组件。 

如果您的任何 WordPress 插件或主题文件缺失,您可能会遇到:

  • 空白页面;

  • 500 内部服务器错误;

  • 出现 “此站点遇到技术问题” 错误(WordPress 5.2.2 引入);

  • 页面部分加载或视觉上“损坏”。

如需诊断问题,请参阅本文以下部分: 检查您网站的 error_log 文件启用 display_errors PHP 选项

您可能会在 error_log 或网站上直接看到类似如下的错误信息:

PHP Fatal error: Uncaught Error: Call to undefined function sample_function() in /home/cPaneluser/...

以下是因插件文件损坏或缺失导致的错误示例:


要恢复缺失文件,只需重新安装受影响的主题或插件。

注意: 主题中缺失 functions.php 文件通常与 wp-vcd.php 恶意软件有关,通常位于 /wp-includes 目录。在安装新主题前,请先删除 wp-vcd.php(如存在),或者如需确保完全安全,请按照前文所述替换所有默认 WordPress 文件。

恶意重定向

在某些情况下,当您的网站感染恶意软件后,可能会将访问者重定向到有害或可疑页面。此问题最常见的原因是不安全的插件或主题,使攻击者能够更改数据库 URL 或修改网站文件。

注意:切勿点击任何被重定向的链接,否则可能导致您的个人电脑感染恶意软件:


要修复恶意重定向,请按照以下步骤操作:

  1. 查找您网站的数据库配置文件 - wp-config.php ,在 cPanel > 文件管理器 > 网站根文件夹中。打开该文件并查找网站的数据库名称:


  2. 然后,在 cPanel 的 phpMyAdmin 菜单中打开分配给您网站的数据库,点击进入,并导航至 wp_options 表(“wp_”为默认前缀,您的可能不同):


  3. 检查 siteurl home 字段的值,如发现有恶意或可疑 URL,请将其替换为您的实际域名: 


  4. 扫描数据库其他部分是否存在类似恶意 URL,并相应替换。 

  5. 临时将当前 .htaccess 替换为干净的默认版本。建议将现有文件重命名(如 .htaccess_old),然后重新创建一个新文件。

    要重命名文件,请双击 > 选择 重命名 > 输入新文件名 > 按 重命名文件

    之后,点击 + 文件 > 命名为 .htaccess > 选择 创建新文件

  6. 新建 .htaccess 后,右键点击并选择 编辑 。编辑窗口打开后,将以下默认 WordPress 规则粘贴到文件中:

    # BEGIN WordPress
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    # END WordPress

  7. 点击 保存更改

如果您的网站仍然被重定向,请尝试替换所有默认 WordPress 核心文件

您还可以通过 WordPress 仪表盘或数据库临时禁用所有插件,然后逐个启用。每启用一个插件后检查网站,以确定是哪个插件导致恶意重定向问题。

需要提供有效的电子邮箱