找出漏洞

由于可能存在多种独立的黑客攻击行为,因此即使您能够找到并修复一个漏洞,我们也建议您继续搜索是否有其他漏洞。请阅读垃圾内容发布者最常用的网站入侵方式以开始调查问题。

您需要做好以下准备:

  • 拥有您网站服务器(Web、数据库和文件)的 Shell 或终端管理员访问权限
  • 了解 shell 或终端命令
  • 懂代码(如 PHP 或 JavaScript)
  • 能够运行两个防病毒扫描程序

后续操作

我们将介绍黑客入侵网站的几种常见方式。希望其中一条适用于您的网站,或者至少为您揭示其他可能性。

请注意,漏洞扫描程序防病毒扫描程序不同。漏洞扫描程序的侵入程度要高得多,并且更有可能对您的网站造成不必要的损害。在运行扫描程序之前,请按照所有指示操作(例如备份您的网站)。

潜在漏洞 {potential-漏洞}

需要调查的潜在漏洞包括:

感染病毒的管理员计算机

在受病毒感染的管理员计算机上,黑客可能安装了间谍软件来记录网站管理员的按键操作。

  • 检查管理员系统中是否存在病毒。我们建议在管理员用于登录网站的每台计算机上运行多款信誉良好的防病毒 (AV) 扫描程序。由于不断设计新的恶意软件感染以避开扫描程序,因此这并不是万无一失的病毒检测方法。运行多个扫描程序有助于避免误报,并提供更多数据点以确定是否存在漏洞。另外,为安全起见,还应考虑扫描您的网络服务器以及用于更新网站或向网站发布内容的所有设备。
    • 如果 AV 扫描程序检测到间谍软件、病毒、特洛伊木马或任何其他可疑程序,请调查网站的服务器日志,以检查拥有受感染计算机的管理员的活动。
    • 黑客可能修改了日志文件。否则,将管理员的用户名与日志文件中的可疑命令相关联即可进一步证明管理员系统上的病毒使网站容易受到攻击。

安全系数较低或重复使用的密码

安全系数低的密码很容易被黑客发现,让他们能够直接访问您的服务器。安全系数高的密码由字母和数字以及标点符号组成,并且不包含可以在字典中找到的字词或俚语。密码只能用于一个应用,不得在整个网络上重复使用。当重复使用密码时,黑客只需一个应用出现一次安全漏洞,即可让黑客找到可在其他地方使用的登录名和密码。

在服务器日志中,检查是否存在不良活动,例如某个管理员多次尝试登录或执行意外命令。记下可疑活动发生的时间,因为了解首次入侵发生的时间有助于确定哪些备份可能仍然是干净的。

软件不是最新版本

检查您的服务器是否安装了最新版本的操作系统、内容管理系统、博客平台、应用、插件以及网站使用的任何其他软件。

  • 研究所有已安装的软件(可以通过网页搜索),确定您的版本是否包含安全建议。如果有,很可能是因为过期的软件使您的网站容易受到攻击。
  • 无论过期软件是否导致此特定漏洞问题,最佳实践都是始终确保服务器软件为最新版本。

4. 权限较宽松的编码实践,例如开放式重定向和 SQL 注入

开放式重定向

开放式重定向的编码目的是为了让网址结构允许添加其他网址,以便用户能够访问网站上的实用文件或网页。例如:

http://example.com/page.php?url=http://example.com/good-file.pdf

http://example.com/page.php?url=malware-attack-site>

  • 如果您的网站存在开放式重定向滥用情况,您可能会注意到 Search Console 中的消息提供的示例网址包含指向不良目标的开放式重定向。
  • 如需防止以后使用开放重定向,请检查以下各项:
    • 在您的软件中,“允许打开重定向”功能是否默认处于开启状态。
    • 您的代码能否禁止离域重定向。
    • 您是否可以对重定向进行签名,以便仅使用经过适当哈希处理的网址和正确的加密签名进行重定向。

SQL 注入

当黑客能够向数据库执行的用户输入字段添加恶意命令时,就会发生 SQL 注入。SQL 注入会使用不需要的垃圾内容或恶意软件内容更新数据库中的记录,或者将有价值的数据转储到输出以让黑客获取。如果您的网站使用数据库(尤其是在感染了恶意软件的情况下),就有可能被 SQL 注入攻击破坏了网站。

  • 登录数据库服务器并查找数据库中的可疑内容,例如原本显示 iframe 或脚本的普通文本字段。
  • 对于可疑的值,请检查用户输入是否经过验证并正确转义,或者可能是强类型输入,因此不能作为代码执行。如果在数据库处理之前未检查用户输入,SQL 注入可能会成为网站存在漏洞的根本原因。