Missed the action at the 2018 Chrome Dev Summit? Catch up with our playlist on the Google Chrome Developers channel on YouTube. Watch now.

解决隐藏真实内容的关键字和链接黑客入侵问题

本指南专门针对的是一种向您的网站添加包含大量关键字的乱码网页的黑客行为,我们将这种黑客行为称为“乱码黑客行为”。我们专门针对热门内容管理系统 (CMS) 的用户推出了这一指南;但即使您并未使用内容管理系统,本指南也会对您有帮助。

注意:不确定您的网站是否遭到了入侵?请先阅读我们的如何检查您的网站是否遭到了入侵指南。

目录

识别此类黑客行为

隐藏真实内容的关键字和链接黑客行为会使用无意义的文字、链接和图片自动创建很多网页。这些网页有时会包含原网站的基本模板元素,因此乍看之下,此类网页似乎是您网站的正常部分,但一旦您阅读了其中的内容,则会发现并非如此。

创建被黑网页的目的是操纵 Google 的排名因素。黑客经常会尝试通过向不同的第三方出售被黑网页上的链接来牟利。通常,被黑网页还会将用户重定向到不相关的网页(例如色情网站),而黑客可通过这些网页获得收入。

要检查是否存在此类问题,请先在 Search Console 中的安全问题工具中查看 Google 是否在您网站上发现了任何此类被黑网页的示例。有时,您也可以通过打开 Google 搜索窗口并输入 site:[your site] 来发现此类网页。搜索结果页面将会显示 Google 已针对您的网站编入索引的网页,其中也包括被黑网页。您可以翻阅几页搜索结果,看看能否发现任何异常网址。如果您在 Google 搜索结果中没有看到任何被黑内容,请尝试使用其他搜索引擎搜索相同的搜索字词。其他搜索引擎可能会显示 Google 已从索引中移除的被黑内容。此操作的效果如以下示例所示。

请注意:上面的搜索结果包含许多并非由网站所有者创建的网页。如果您仔细看第二个和第三个搜索结果描述,便会看到这种黑客行为所创建的乱码文字的示例。

当您访问被黑网页时,您可能会看到一条表示网页不存在的消息(例如 404 错误)。别被骗了!黑客会试图使您相信被黑网页已消失或修复,从而诱使您认为您的网站已修复。为此,他们会隐藏真实内容。您可以在 Google 抓取工具中输入您网站的网址,以此来检查是否存在隐藏真实内容的问题。Google 抓取工具可以让您看到潜在的隐藏内容。此类被黑网页的外观如以下示例所示:

解决黑客入侵问题

开始前,请先为您要移除的任何文件创建离线副本,以备日后需要恢复这些文件时使用。在开始执行清理流程之前,最好先备份您的整个网站。为此,您可以将您服务器上的所有文件保存到服务器之外的位置,或搜索最适合您的特定内容管理系统的备份选项。

检查 .htaccess 文件(共 3 步)

隐藏真实内容的关键字和链接黑客行为会利用您的 .htaccess 文件在您的网站上自动生成隐藏真实内容的网页。建议您在官方 Apache 网站上先熟悉有关 .htaccess 的基础知识,这可帮助您更好地了解黑客行为影响您网站的方式,但这并非强制要求。

第 1 步

查找您网站上的 .htaccess 文件。如果您不确定在哪里可以找到此文件,并且您使用了 WordPress、Joomla 或 Drupal 等内容管理系统,请在搜索引擎中同时搜索“.htaccess 文件的位置”以及您的内容管理系统的名称。您可能会看到多个 .htaccess 文件,具体取决于您的网站。然后,列出所有 .htaccess 文件的位置。

注意:.htaccess 通常是“隐藏文件”。请确保您在搜索此类文件时启用了显示隐藏文件选项。

第 2 步

打开 .htaccess 文件以查看文件中的内容。在文件中,您应该可以找到一行与以下内容类似的代码:

  RewriteRule (.*cj2fa.*|^tobeornottobe$) /injected_file.php?q=$1 [L]

此行中的变量可能会变化。“cj2fa”和“tobeornottobe”可以是任何字母或字词的组合。重要的是,您需要找到此行中引用的 .php 文件。

记下 .htaccess 文件中提到的 .php 文件名称。在以上示例中,.php 文件的名称是“injected_file.php”,但实际上,.php 文件的名称不会这样明显。它通常是一组随机的无害的字词,例如“horsekeys.php”、“potatolake.php”等。这很有可能是一个恶意的 .php 文件,我们稍后需要找出并移除此文件。

在 .htaccess 文件中,并非所有包含 RewriteRule 和 .php 文件的行都是恶意内容。如果您不确定某一行代码的作用,可以在网站站长帮助论坛中向一群经验丰富的网站站长寻求帮助。

第 3 步

将所有 .htaccess 文件替换为相应 .htaccess 文件的未遭入侵版本或默认版本。您通常可以通过同时搜索“默认 .htaccess 文件”和您的内容管理系统的名称来查找 .htaccess 文件的默认版本。对于拥有多个 .htaccess 文件的网站,请查找每个文件的未遭入侵版本并进行替换。

如果不存在默认的 .htaccess 文件,并且您从未在网站上配置任何 .htaccess 文件,那么您在网站上找到的 .htaccess 文件可能是恶意文件。为保险起见,您可以离线保存 .htaccess 文件的副本,然后从网站中删除相应的 .htaccess 文件。

查找并移除其他恶意文件(共 5 步)

识别恶意文件可能会有些棘手,并且可能需要几个小时才能完成。在检查您的文件时,请不要着急。如果您尚未备份网站上的文件,这便是个好时机。您可以在 Google 搜索中同时搜索“备份网站”以及您的内容管理系统的名称,以查找有关如何备份网站的说明。

第 1 步

如果您使用了内容管理系统,请重新安装此内容管理系统的默认分发中附带的所有核心(默认)文件,以及您可能添加过的任何内容(例如主题背景、模块、插件)。这样有助于确保这些文件中不含被黑内容。您可以在 Google 搜索中同时搜索“重新安装”以及您的内容管理系统的名称,以查找有关重新安装流程的说明。如果您有任何插件、模块、扩展程序或主题背景,请确保您也重新安装了这些内容。

重新安装这些核心文件可能会导致您所做的任何自定义设置丢失。请务必先为您的数据库和所有文件创建备份,然后再重新安装。

第 2 步

首先,查找您早先在 .htaccess 文件中找到的 .php 文件。根据您访问服务器上相关文件的方式,您应该会看到某种搜索功能。搜索恶意文件的名称。如果找到了该恶意文件,请先备份此文件并将副本存储在其他位置以备在需要恢复此文件时使用,然后从网站上将此文件删除。

第 3 步

查找剩余的任何其他恶意或遭到入侵的文件。您可能在前两个步骤中已经移除了所有的恶意文件,但我们仍建议您执行下面这几个步骤,以免网站上仍然存留遭到入侵的文件。

不要由于认为需要打开并查看每个 PHP 文件而感到太大压力。首先,请创建一个您想要调查的可疑 PHP 文件的列表。以下几种方法可用于确定哪些 PHP 文件可疑:

  • 如果您已经重新加载了内容管理系统文件,则只需查看不包含在默认内容管理系统文件或文件夹范围内的文件。这样应该可以排除大量 PHP 文件,并只需检查少数文件。
  • 按最后修改日期对网站上的文件进行排序。查找在您首次发现网站遭到入侵后的几个月内遭到修改的文件。
  • 按大小对网站上的文件进行排序。查找是否有任何异常大的文件。

第 4 步

创建好可疑 PHP 文件的列表之后,请检查这些文件是正常文件还是恶意文件。如果您对 PHP 文件不熟悉,该流程可能会消耗更多时间,因此不妨重温一些 PHP 文档。但即使您刚开始接触编码,您还是可以通过一些基本模式来查找恶意文件。

首先,扫描您已经找到的可疑文件,以查找包含看似混乱的字母和数字组合的大型文本块。大型文本块的前面通常是 PHP 函数组合(例如 base64_decode、rot13、eval、strrev、gzinflate)。下面是此类代码块的一个示例。有时,所有此类代码会被填充到一长串文本中,使其看起来小于实际大小。

<!--Hackers try to confuse webmasters by encoding malicious code into blocks of texts.
Be wary of unfamiliar code blocks like this.-->

base64_decode(strrev("hMXZpRXaslmYhJXZuxWd2BSZ0l2cgknbhByZul2czVmckRWYgknYgM3ajFGd0FGIlJXd0Vn
ZgknbhBSbvJnZgUGdpNHIyV3b5BSZyV3YlNHIvRHI0V2Zy9mZgQ3Ju9GRg4SZ0l2cgIXdvlHI4lmZg4WYjBSdvlHIsU2c
hVmcnBydvJGblBiZvBCdpJGIhBCZuFGIl1Wa0BCa0l2dgQXdCBiLkJXYoBSZiBibhNGIlR2bjBycphGdgcmbpRXYjNXdmJ2b
lRGI5xWZ0Fmb1RncvZmbVBiLn5WauVGcwFGagM3J0FGa3BCZuFGdzJXZk5Wdg8GdgU3b5BicvZGI0xWdjlmZmlGZgQXagU2ah
1GIvRHIzlGa0BSZrlGbgUGZvNGIlRWaoByb0BSZrlGbgMnclt2YhhEIuUGZvNGIlxmYhRWYlJnb1BychByZulGZhJXZ1F3ch
1GIlR2bjBCZlRXYjNXdmJ2bgMXdvl2YpxWYtBiZvBSZjVWawBSYgMXagMXaoRFIskGS"));

有时,此类代码并不混乱,看起来就像正常的脚本。如果您不确定代码是否为恶意代码,请访问我们的网站站长帮助论坛;在该论坛中,有一群经验丰富的网站站长可以帮助您检查相关文件。

第 5 步

您已经知道哪些文件可疑了,接下来便可以创建备份或通过将其保存到您的计算机上来创建本地副本,以免这些文件并不是恶意文件,然后删除这些可疑文件。

检查您的网站是否已清理干净

删除被黑文件之后,请检查您的辛苦工作是否已见成效。还记得您早先发现的那些乱码网页吗?再次使用“Google 抓取工具”检查这些网页,看它们是否仍然存在。如果它们在“Google 抓取工具”中的结果是“未找到”,则说明您的网站很可能处于良好状态,您可以继续修复网站上的漏洞。

您还可以按照“被黑客入侵的网站”问题排查工具中的步骤检查网站上是否仍然存在被黑内容。

如何防止再次遭到入侵?

修复网站上的漏洞是修复网站的最后一个关键步骤。最近的一项研究发现,20% 的被黑网站会在 1 天内再次遭到入侵。了解网站遭到入侵的具体方式非常有用。请参阅我们的垃圾内容发布者最常用的网站入侵方法指南以开始调查问题。不过,如果您无法找出网站遭到入侵的方式,则可以按照以下核对清单操作,以减少网站上的漏洞。

  • 定期更新内容管理系统、插件、扩展程序和模块:希望您已经执行此步骤。许多网站遭到入侵,是因为网站上运行了过期软件。某些内容管理系统支持自动更新功能。
  • 定期扫描计算机:使用任何热门的病毒扫描程序检查是否存在病毒或漏洞。
  • 定期更改密码:定期更改用于所有网站帐号(例如托管服务提供商、FTP 和内容管理系统)的密码可以阻止攻击者未经授权地访问您的网站。为每个帐号分别创建一个唯一的安全系数高的密码很重要。
  • 使用双重身份验证 (2FA):考虑针对任何需要您登录的服务启用双重身份验证功能。双重身份验证功能让黑客难以登录,即使他们成功窃取了您的密码也没关系。
  • 考虑订阅安全服务以监控您的网站:有许多优秀的服务可以帮助您监控网站,并且只需支付少量的费用。您可以考虑注册此类服务以确保您网站的安全。

其他资源

如果您在修复网站时仍然遇到问题,还有一些其他资源或许可以帮助您。

这些工具可对您的网站进行扫描,并可能会找出有问题的内容。除 VirusTotal 以外,Google 不会运行或支持其他工具。

Virus TotalAw-snap.infoSucuri Site CheckQuttera:这些工具(此外还有许多其他工具)也许能够通过扫描您的网站来找出有问题的内容。但请注意,这些扫描工具无法保证一定能找到每一类有问题的内容。

下面是 Google 提供的可为您提供帮助的其他资源:

没有找到您认为可能有用的工具?请留下反馈并告知我们。