一个遭到入侵的网站需要按顺序完成三件事:控制住局面,查明对方是如何入侵的,然后干净地重建网站。不按这个顺序操作,正是网站在一天之内再次被感染的原因。
请从本页顶部开始逐步操作。本页不预设攻击是如何发生的。
不要只是删除可疑文件然后照常运营。几乎每一次入侵都会留下不止一条重新进入的途径:第二个后门、一个恶意的管理员账户、一个计划任务,或一个被修改过的核心文件。只清除可见的症状就此止步,是网站在同一周内再次遭到攻击的最常见原因。
确实已被入侵的迹象
- 搜索结果中出现您从未写过的药品、赌博或外语页面。
- 访客被重定向到其他地方,通常只发生在移动设备上,或只在从搜索引擎进入时发生。
- 浏览器或搜索引擎对您的域名显示警告。
- 出现您无法解释其名称或修改日期的文件。
- 您的网站在发送垃圾邮件,或您的域名开始被邮件服务商拒收。
- 存在一个无人创建过的管理员账户。
并非以上每一种情况都意味着遭到了黑客入侵。如果网站只是速度慢或报错,更常见的原因是插件冲突或资源限制。如果您遇到的只是这些情况,请先参阅网站无法加载。
第 1 步:控制局面
在调查之前先让网站下线。网站多公开一分钟,您的声誉、搜索排名和访客就会多受一分损害。
在不删除任何内容的前提下,最快的做法是启用密码保护,它会在 Web 服务器层面为整个网站加上一道登录:
- 进入网站并打开该网站。
- 打开密码保护标签页。
- 启用它并设置用户名和密码。
现在,网站会向每一位访客(包括攻击者)显示登录提示,而您仍可通过面板、SFTP 和 SSH 拥有完整的访问权限。

如果您知道攻击者的 IP 地址,也请将其添加到网站安全标签页上的 IP 屏蔽列表中。
不要删除网站,也暂时不要还原任何内容。当前状态是您了解攻击如何发生的唯一证据。现在就为被入侵的网站创建一份备份,清楚地标注其已被感染,并将其单独存放。您可能会用到它。
第 2 步:查明对方是如何入侵的
现实中可能的答案只有几种,而每一种都会改变您下一步要做的事。
检查面板审计日志。 进入设置,然后账户,然后查看日志。如果有操作被记录为您团队所为,但来自您团队中无人使用的 IP 地址,就说明您的 KapsuleHost 账户本身已被攻破。这是一起严重得多的事件:请参阅账户安全,并将该账户也视为已被入侵。网站的活动标签页涵盖通过面板所做的更改。
在网站的日志标签页上检查您的错误日志和访问日志。对某个插件路径的反复请求,或对某个上传端点的大量 POST 请求,通常就能指明入侵途径。请参阅阅读错误日志。
在网站的安全标签页上运行恶意软件扫描。如何解读扫描结果,请参阅扫描并清除恶意软件。
检查哪些内容已经过时。 过时的插件、主题或核心版本是迄今为止最常见的入侵点。请参阅WordPress 更新。
第 3 步:干净地重建
有两种方法可以得到一个干净的网站,但只有其中一种是可靠的。
可靠的方法:从入侵发生前创建的备份还原
根据日志大致判断入侵是从何时开始的,然后从远早于该日期创建的备份进行还原。
- 进入网站的备份页面。
- 选择一份感染发生之前的备份。
- 先还原到预发布环境。还原对话框特意将默认目标设为预发布环境。
- 检查预发布副本:没有未知文件,没有未知的管理员用户,没有重定向。
- 确认无误后,再还原到正式网站。还原到正式网站时需要输入域名进行确认。
详细说明(包括如何分别还原文件和数据库)请参阅从备份还原。
在使用托管数据库的 WordPress 和 WooCommerce 网站上,网站 PITR 标签页中的时间点恢复可以将数据库还原到某个具体的分钟,而不仅仅是上一次夜间备份。当您原本会因此丢失一整天的订单时,这一点就非常重要。
还原会回滚所有内容,包括该备份创建之后产生的合法内容和订单。在还原之前,请从当前网站导出您需要保留的任何数据,并注意从被入侵网站导出的内容本身也可能携带被注入的代码。导入之前请先仔细检查。
不可靠的方法:原地清理
如果您没有干净的备份,就只能手动清理网站。请如实评估这项工作需要做到多彻底。
- 隔离恶意软件扫描标记出的每一个文件。请参阅扫描并清除恶意软件。
- 用从原始来源获取的全新副本替换 WordPress 核心、每一个插件和每一个主题,而不是原地更新。
- 删除您没有实际使用的任何插件或主题。未启用的代码只要能被访问到,仍然会被执行。
- 检查扫描程序未覆盖的文件:
.htaccess、wp-config.php,以及上传文件夹中任何不是图片的文件。 - 在网站的定时任务标签页上检查计划任务,找出不是您创建的任务。
- 检查数据库中是否有被注入的内容,特别是选项和文章内容中。
第 4 步:更改所有凭据
假设网站能够访问到的一切都已被窃取。
- WordPress 管理员密码。 在网站的 WordPress 标签页中重置每一个密码,强制所有用户退出登录,使被盗的会话 Cookie 失效,并删除任何不是您创建的应用程序密码。请参阅重置 WordPress 密码。
- 未知的管理员账户。 删除它们,并将任何不需要管理员权限的账户降级。
- 数据库凭据,在网站的数据库标签页上更改。
- SFTP 账户,在网站的 SFTP 标签页上处理。删除某个账户会终止其所有已打开的会话。
- SSH 密钥,在网站的 SSH 访问标签页上处理。移除任何您不认识的密钥。
- 您的 KapsuleHost 密码,并撤销任何不是您创建的 API 密钥。请参阅API 密钥与开发者访问。
第 5 步:恢复上线并加固
一旦您确信网站已经干净,就关闭密码保护,让外界重新访问。
然后关上那扇曾经敞开的门:
- 保持所有内容为最新版本。 请参阅WordPress 更新和WordPress 插件。
- 在网站的安全标签页上开启各项安全防护:暴力破解防护、国家/地区筛选和 IP 屏蔽列表。
- 在您的 KapsuleHost 账户以及网站自己的管理员账户上启用双重身份验证。
- 为确认无问题的网站创建一份新备份。请参阅创建备份。
- 考虑购买扩展备份保留期,这样即使入侵在数周后才被发现,网站仍然可以恢复。
何时需要联系支持团队
如果符合以下任一情况,请提交支持工单:
- 入侵是通过您的 KapsuleHost 账户而非网站本身发生的。
- 您的网站正在发送垃圾邮件,或您的发信信誉已受到影响。
- 您没有可用的备份,并且无法将网站清理干净。
- 您的账户或网站已被暂停。请参阅您的账户为何被暂停。
- 您认为另一位客户的网站正在攻击您的网站。请参阅举报滥用行为。
请说明您发现了什么、您最初是何时注意到的,以及您已经更改了哪些内容。您能分享的自行调查结果越多,我们答复得就越快。
故障排除
搜索引擎仍然对网站发出警告。 在网站确实已经干净之后,请通过搜索引擎自己的网站管理员工具申请复查。这不在我们的控制范围之内。
清理之后问题又出现了。 您遗漏了某个后门,或者某个您没有更改的凭据仍然有效。请改为从干净的备份还原,并更改第 4 步中的所有凭据。
扫描显示干净,但网站明显已被入侵。 文件扫描能发现已知的恶意代码,但无法发现被注入的数据库记录。请与备份进行对比,并检查数据库。
我无法登录进行修复。 请使用 SFTP 或 SSH,而不是应用程序自己的登录方式,因为攻击者可能已经更改了它。请参阅 SFTP 访问和文件管理器。