如何修复和防止 WordPress 中的 XSS 攻击

已发表: 2022-06-14
How to fix and prevent xss attacks

您是否担心黑客攻击您的网站?

跨站点脚本,也称为 XSS,是对 WordPress 站点最常见的攻击之一。 黑客在您的网站上发现漏洞并利用它们窃取信息并滥用您的网站。

更糟糕的是,如果你不立即修复它,这些黑客攻击可能会导致更严重的损害——这种损害真的很难恢复。

您可以通过在 WordPress 网站上安装防火墙来防止这些黑客攻击。

如果您的网站已经受到攻击,我们将向您展示如何用简单的初学者友好语言立即修复它。 在本教程中,我们将尽量减少网络安全术语。 我们还将向您展示如何防止未来的攻击。

首先,让我们快速了解 XSS 攻击中会发生什么,以便更好地处理它。

什么是 WordPress 中的 XSS 攻击?

XSS 代表 Cross Site Scripting,这是一种注入攻击,黑客将恶意脚本注入网站。

这些脚本伪装成可信网站上的好代码。 接下来,当用户登陆该网站时,他们的浏览器会执行所有代码,包括恶意脚本,因为它认为这些都是受信任的指令。

简单来说,假设您是一名间谍,并且刚刚收到一封来自政府的关于绝密任务的官方电子邮件。 它包含您需要遵循的所有说明。

你不知道的是,有人截获了那封电子邮件并添加了一些他们自己的指令。 政府对此一无所知,您不必费心仔细检查,因为您相信消息来源。

其中一些没有意义,但你受过训练,可以服从每一个命令来完成你的使命。

在这种情况下,政府是你的网站,间谍是用户的浏览器。 浏览器遵循您网站上的说明,无法区分好脚本和坏脚本。

这些脚本通常使用 Javascript,这是最流行和广泛使用的编程语言之一。 虽然,这些攻击可以使用任何客户端语言进行。

现在有很多方法可以进行 XSS 攻击。 一种方法是将链接发送给毫无戒心的用户,让他们点击它。 一旦他们点击它,攻击可能会执行以下一项或多项操作:

  • 将用户重定向到恶意站点
  • 捕获用户的击键
  • 运行基于 Web 浏览器的漏洞利用
  • 窃取登录帐户的用户的 cookie 信息

如果黑客能够窃取 cookie 信息,他们就可以完全破坏用户的帐户。 例如,如果您登录了网站的 wp-admin 面板,黑客可以窃取您的凭据并登录您的网站。

为了防止这些攻击,您需要做的是确保所有用户数据在进入您的网站之前都经过正确验证和清理。 这样,任何用户输入都不会是恶意的 Javascript 代码。 除此之外,您需要确保您的网站上没有可以允许黑客攻击的 XSS 漏洞。

我们几乎没有触及 XSS 攻击的表面,但我们希望您对 WordPress XSS 攻击的工作原理有一个不错的了解。 现在,如果您怀疑您的网站被黑客入侵,请按照下面的简单分步教程进行操作。

如何在 WordPress 中查找和修复 XSS 攻击

要在您的网站上查找任何类型的恶意软件或黑客行为,您需要对整个网站(包括其文件和数据库)进行深度扫描。

我们将使用 Sucuri 扫描和清理您被黑的网站。 Sucuri 为您提供强大的安全设置,包括防火墙、恶意软件扫描程序和恶意软件清理程序。

Sucuri 提供免费的网站恶意软件扫描程序,您可以通过导航到插件»添加新选项卡将其安装在您的 WordPress 网站中。

我们建议使用高级服务器端扫描程序。 这会将您的网站彻底翻出来,以找到任何恶意软件的痕迹。

除此之外,这里有一些亮点:

  • 监控垃圾邮件和恶意脚本
  • 检查黑客创建的隐藏后门
  • 检测对 DNS(域名系统)和 SSL 所做的更改
  • 通过搜索引擎和其他机构检查黑名单
  • 监控网站正常运行时间
  • 通过电子邮件、SMS、Slack 和 RSS 提供即时警报

有关更多详细信息,请阅读我们的 Sucuri 评论。

Sucuri 的价格为每年 199.99 美元。 如果这超出了您的预算,您可以尝试其他安全插件。 查看我们的列表:比较了 9 个最佳 WordPress 安全插件。

在选择安全插件时,请确保它为您提供查找和修复恶意软件感染并保护您的网站所需的所有网络安全功能。

第 1 步:扫描您的网站

要开始使用,您需要在 Sucuri 注册一个计划。 然后,登录到 Sucuri 仪表板,您可以在其中添加您的站点。

Add site in Sucuri

在这里,您需要通过输入您的 FTP 凭据来连接您的网站。 如果您不知道您的 FTP 凭据,您可以从您的网络主机获取它们。

Connect site to Sucuri

连接您的网站后,Sucuri 将自动对您的网站进行彻底扫描。 完成后,它将在“我的网站”选项卡下向您显示详细报告。

Sucuri dashboard site infected

现在您可以单击警告消息旁边的“详细信息”按钮。 这将打开监控页面,您可以在其中查看黑客或感染的详细信息。

第 2 步:请求恶意软件清理

监控页面上,您可以看到哪种恶意软件感染了您的网站。 Sucuri 添加了一个评级来指示风险级别。 因此,如果这是一个严重或高风险,您知道您需要立即修复它。 除此之外,它还会显示您的网站是否已被任何搜索引擎列入黑名单。

Clean up site with Sucuri

既然您知道您的网站已被感染,您需要对其进行清理,而 Sucuri 让这对您来说非常容易。 要开始该过程,请单击“清理我的网站”按钮。

Malware removal request in Sucuri

在下一页上,单击新的恶意软件删除请求按钮,将出现一个表单,您可以在其中输入站点的详细信息。

Malware removal request form in Sucuri

只需填写表格并提交即可。 完成后,Sucuri 的安全专家将为您清理您的网站。 如果您不知道表单所需的任何详细信息,您可以向您的虚拟主机询问。

现在您可能想知道清理您的网站需要多长时间。

Sucuri 优先考虑商业计划中的用户。 他们保证 6 小时的周转时间。 对于其他计划,这取决于您的站点感染的复杂程度以及他们在队列中的请求量。

攻击发生后,我们强烈建议立即将所有用户登出您的站点并更改您的登录凭据以确保安全。

如何防止对您的 WordPress 网站的 XSS 攻击

最好保护您的网站并防止对您的网站进行此类恶意软件攻击。 这比尝试修复被黑网站更容易、更便宜。 以下是我们推荐的防止对您的网站进行 XSS 攻击的主要步骤。

1. 启用 Web 应用程序防火墙 (WAF)

Sucuri 拥有最适合 WordPress 网站的防火墙之一。 它不仅可以阻止 XSS 攻击,还可以阻止各种其他恶意软件攻击,例如 DDoS、蛮力、网络钓鱼和 SQL 注入。

防火墙将位于您的网站前面并扫描每个通过的用户。 它将在恶意机器人到达您的站点之前识别并阻止它们。

要启用 Sucuri 防火墙,请导航到 Sucuri 仪表板上的防火墙选项卡。

选择您的站点,您将看到可以遵循的设置说明。 Sucuri 为您提供 2 个选项来设置防火墙:

1. 自动集成:只需使用 cPanel 或 Plesk 输入您的托管凭据。 此方法要求您授予 Sucuri 访问您网站服务器的权限,以便在您的网站上自动设置防火墙。

Sucuri firewall waf

2. 手动集成:您可以自行设置防火墙,无需授予 Sucuri 内部访问权限。 要开始,请单击内部域链接并确保它已加载。

check internal domain link

接下来,您可以配置您的 DNS 以将您的网络流量指向 Sucuri 防火墙。 为此,您需要访问主机帐户中的 DNS 记录。 在这里,您可以更改站点的“A”记录并输入 Sucuri 提供的 IP 地址。

sucuri dns ip addresses

如果您强调这太复杂了,您可以向您的虚拟主机寻求帮助,他们将指导您完成整个过程。 除此之外,您还可以向 Sucuri 提出支持请求,他们的支持团队将帮助您更改 DNS 记录。

要打开票证,您会在同一页面的手册说明中找到一个链接。

open a ticket sucuri

完成防火墙设置后,更改通常需要几个小时才能反映出来。 您预计最长等待时间为 48 小时。

当您启用防火墙时,它会自动将安全标头添加到您的站点以保护其免受 XSS 攻击。

如果有未遂的 XSS 攻击,Sucuri 将阻止它并在“报告”选项卡中向您报告

现在我们喜欢 Sucuri 防火墙的地方在于它对任何人都非常容易使用,包括初学者。 您不必是网络安全专家或知道任何编码。

您只需单击“设置”»“安全”选项卡即可启用各种保护功能。

因此,例如,您可以启用 DDoS 保护和地理封锁,以使黑客更难攻击您的网站。

Emergency ddos protection

要在此处启用安全功能,您所要做的就是选中该框并保存您的设置。 当您需要禁用它时,您只需取消选中该框。

除此之外,Sucuri 插件将:

  • 定期扫描和监控垃圾邮件和恶意代码
  • 提醒您任何跨站点脚本漏洞
  • 阻止不良机器人和黑客
  • 通过搜索引擎和其他机构检查黑名单
  • 监控网站正常运行时间
  • 检测对 DNS(域名系统)和 SSL 所做的更改
  • 通过电子邮件、SMS、Slack 和 RSS 向您发送即时安全警报

因此,您的网站将始终受到保护。

2. 使用安全表格

在易受攻击的网站上,表单是黑客最常见的目标之一。 如果您的表单不安全,这意味着任何人都可以简单地在您的表单字段中输入恶意代码。

我们为保护您的网站表单提供的建议是 WPForms。 它是排名第一的 WordPress 表单构建器,具有内置安全性,因此您的表单从一开始就受到保护。

anti spam protection in WPForms

默认情况下,表单已打开反垃圾邮件保护。 此外,您甚至可以将 CAPTCHA 添加到您的表单中以阻止垃圾邮件机器人。

Advanced noCaptcha and Invisible Captcha

您可以启用不可见的验证码或用户必须解决一个小谜题或勾选一个框以证明他们是人类的类型。

3.设置用户角色权限

当您有多个人在您的网站上工作时,授予每个人管理员访问权限是不明智的。 最好根据他们需要的权限为他们分配角色。

WordPress 允许您为以下对象创建角色:

  • 超级管理员
  • 行政人员
  • 编辑
  • 作者
  • 贡献者
  • 订户

现在,如果黑客控制了用户的帐户,他们在您的网站上可以做的事情将受到限制。

4.自动注销非活动用户

黑客可以通过劫持浏览器会话和窃取 cookie 来访问用户帐户。

您可以通过注销不活动的 WordPress 用户来最小化这种风险。

许多安全插件具有空闲会话注销功能,或者您可以使用非活动注销插件。

5. 定期更新您的网站

WordPress 插件、主题,甚至您的 WordPress 安装都会定期更新。 当它们可用时,您会在 WordPress 仪表板中看到它们:

updates in wordpress

许多网站所有者长时间忽略更新,但这可能会将您的网站暴露给黑客。 更新通常包含错误修复、新功能和软件改进。 他们也可以有安全补丁。 您可以通过查看更新的详细信息来查看更新是否带有安全补丁。

view version details of update

这意味着在黑客可以用来攻击您的网站的软件中发现了一个漏洞。 当开发人员发现安全问题时,他们会对其进行修补并发布新版本的软件。

您所要做的就是更新您网站上的软件。

因此,如果您看到它是一个安全补丁,请立即更新它以避免任何被黑客入侵的风险。

security update

网站所有者忽略更新的主要原因之一是它们有时会破坏您的网站或导致不兼容问题。 我们建议您在临时站点上测试更新,然后在您的实时站点上运行它。

这样,您就学会了如何修复和防止对您的 WordPress 网站的 XSS 攻击。

在结束之前,我们将再给您一个安全提示。 始终定期备份您的网站。

即使在您的网站上采取了最强大的安全措施,也有很多事情可能出错。 例如,用户可能会犯一个简单的人为错误导致您的网站崩溃。

您可以使用 UpdraftPlus 等备份插件设置自动备份。 有关更多选项,请参阅我们的顶级 WordPress 备份插件列表。

常见问题

1. WordPress 是否容易受到跨站脚本攻击?

WordPress 核心软件由世界上一些最优秀的专家开发和维护。 他们的软件非常坚如磐石,但请记住,没有任何软件没有漏洞。

WordPress网站经常受到攻击的原因是该平台非常受欢迎。 大多数用户安装了大量的第三方主题和插件。 这些元素中的任何一个都可能出现漏洞,黑客可以利用它们来入侵您的网站。

2. 有不同种类的跨站脚本攻击吗?

是的。 XSS 攻击主要有 3 种类型:

  • 存储型 XSS(也称为持久型 XSS):攻击者将其有效负载存储在受感染的服务器上,导致网站向其他访问者传递恶意代码。
  • 反射型 XSS:有效载荷存储在从浏览器发送到服务器的数据中。
  • DOM XSS:在这里,服务器本身不是易受 XSS 攻击的,而是页面上的 JavaScript 易受攻击。
  • 自跨站点脚本:攻击者可以利用需要真正特定上下文和手动更改的漏洞。 这里的受害者只能是你自己。
  • 盲目的跨站点脚本:在这些攻击中,漏洞通常位于只有授权用户才能访问的页面上。 攻击者看不到攻击的结果。

3. 如何确保我的网站没有其他安全问题?

确保您始终在您的网站上安装安全插件。 这对于包括 WooCommerce、博客和小型企业网站在内的各种网站都是必须的。 我们推荐 Sucuri,但您也可以查看 Wordfence、MalCare 和 SiteLock。 在此处查看我们的更多顶级建议:比较 9 个最佳 WordPress 安全插件。

这就是我们今天为您准备的全部内容。 我们希望这篇文章为您提供了保护您的网站所需的一切。

有关网站安全的更多信息,请参阅我们的资源:

  • 完整的 WordPress 安全指南(适合初学者)
  • 5 款最佳 WordPress 漏洞扫描程序来查找威胁
  • 9 个最佳活动日志插件,用于跟踪和审核您的 WordPress 网站

这些帖子将为您提供更多方法来密封漏洞并保护您的网站免受所有风险。