跨站脚本:WordPress 用户指南
已发表: 2021-04-21如果您担心跨站点脚本以及它如何影响您的 WordPress 网站,那么您绝对不是偏执狂。 虽然跨站点脚本(也称为 XSS)的漏洞并非 WordPress 站点所有者独有,但了解其对 WordPress 站点的潜在负面影响非常重要。
在本指南中,我们将分解您需要关注的跨站点脚本 (XSS) 漏洞。 其中一些会有点技术性,但在指南的最后,您将能够就与跨站点脚本相关的整体 WordPress 站点安全性做出明智的决定。 此外,您将确切知道如何避免攻击。
现在,让我们深入了解。
什么是跨站脚本(XSS)?
跨站点脚本 (XSS) 是一种恶意软件攻击,它通过利用任何 WordPress 站点上的跨站点漏洞来执行。 事实上,这是 WordPress 网站被黑客入侵的最常见方式,因为有太多 WordPress 插件存在 XSS 漏洞。跨站脚本解释
用更多技术术语来说,什么是跨站点脚本?
跨站点脚本漏洞允许在网站上执行外部 JavaScript 代码。 这对于 WordPress 站点所有者来说可能非常难以捕捉,因为利用该漏洞的攻击可能有多种不同类型。
如果您正在运行一个非常大或复杂的 WordPress 网站,并且有许多协同工作的插件,则更是如此。
许多不同类型的 XSS 攻击可以归纳为两个不同的类别:
- 在客户端浏览器中执行的恶意脚本
- 在您的服务器上存储和执行的恶意脚本,然后由浏览器提供
在这两种情况中的任何一种情况下,黑客都会使用跨站点脚本攻击来操纵您站点的工作方式,甚至窃取关键站点数据。
是什么让 WordPress 网站的 XSS 攻击很常见?
作为 WordPress 用户,您可能已经知道某些 WordPress 插件有多复杂。 事实上,您使用的某些插件甚至比 WordPress 核心本身还要复杂。
不幸的是,WordPress 插件越复杂,您面临安全问题的可能性就越大。 插件作者知道防范 XSS 攻击是多么困难,这确实使他们的工作成为一项挑战。
一些最受尊敬的科技巨头,如 Facebook、苹果和谷歌,过去曾遭受过 XSS 攻击。 事实上,他们雇佣了整个专门的安全团队来最大程度地降低这些攻击的风险。
这应该有助于更多地了解攻击可以多么容易地潜入 WordPress 插件,其安全资源比科技巨头少得多。
您可能想知道您的站点对跨站点脚本攻击的脆弱性如何。
首先,重要的是要注意,如果您保持所有主题和插件完全更新,您已经显着降低了风险。 但是,没有一种有保证的方法可以完全抵御 XSS 攻击。
大多数 WordPress 网站都存在非公开的漏洞,黑客可以利用这些漏洞。 因此,定期扫描您的网站至关重要。 稍后再谈。

虽然黑客可以通过跨站点脚本攻击造成的损害取决于他们最终目标的确切细节,但在最坏的情况下,您的整个站点都可以被接管。
在其他情况下,黑客会对网站进行细微更改,甚至将网站重定向到他们设置的恶意网站。
换句话说,利用 WordPress 跨站点脚本漏洞的黑客知道如何:
- 通过检测会话 ID 来劫持用户的会话
- 放置未经您授权的重定向和弹出窗口
- 率先发起恶意网络钓鱼攻击
- 通过安装键盘记录器记录受害者的每一次击键
- 窃取您的财务信息或网站用户的财务信息
跨站脚本的类型有哪些?
并非所有 XSS 攻击都同样危险。 事实上,有些比其他的要危险得多。
在某些攻击中,黑客可以完全访问您的 WordPress 网站。 到那时,他们基本上可以用它做任何他们想做的事情。在其他情况下,攻击将允许黑客修改您网站的一部分。 虽然不像全站点 XSS 黑客那样危险,但这也可能非常危险,因为它会向所有访问者提供恶意软件。
不同的跨站点脚本攻击需要黑客成为贡献站点成员。 在这种情况下,所造成的危险要低得多。
跨站脚本如何工作?
经验丰富的黑客使用自动化工具发现网站漏洞。 在他们发现漏洞后,执行所需的黑客攻击就变得很简单了。
不幸的是,整个黑客攻击过程都可以由机器人执行。
黑客有五种不同的方式使用 XSS 来实现他们的目标。
1. 劫持用户会话
XSS 攻击可以帮助黑客访问 cookie。 最危险的方面是这种类型的攻击会泄露用户的会话 ID。
大多数网站利用会话为每个网站用户设置唯一标识符。 然后使用脚本将会话存储在会话 cookie 中。
黑客可以将会话 cookie 发送到特定站点,例如 http://198.178.260.468/,并将请求记录到服务器的 access.log 文件中。
当黑客使用会话信息时,他们可以登录您已登录的任何帐户,而无需密码。
2. 未经授权的活动执行
在某些情况下,黑客无法使用 JavaScript 来窃取所需的 cookie。 在这些情况下,他们将尝试利用 XSS 攻击来执行未经授权的活动。
例如,他们可能会使用一个脚本,导致在您的评论部分弹出一条消息,并继续重复发布。
这种类型的跨脚本攻击通常采用恶意脚本的形式,像病毒一样传播给您的用户。 它还可用于破坏您的网站。
3. 网络钓鱼攻击
通常,WordPress 跨站点脚本漏洞会导致黑客采用比简单的 XSS 攻击更大的方案。
跨站点脚本可能会导致对您站点的网络钓鱼攻击。
通常,恶意脚本开始在您的 WordPress 网站上发起网络钓鱼诈骗,诱骗用户提供高度敏感的信息。
这是一次非常危险的攻击。
4. 键盘记录器安装
这种类型的攻击涉及黑客实施脚本,该脚本会将键盘记录器安装到易受攻击的 WordPress 站点上。
每次您的用户键入内容时,该键盘记录器都会存储信息并将其传输给黑客。 这是窃取信用卡信息、密码、医疗信息等的一种快速简便的方法。
5. 窃取敏感信息
我们已经讨论了 cookie 以及它们是如何被盗的。 但是这种特殊的攻击将这一原则带到了不同的层次。
想象一个场景,您的信用合作社的“网上银行”页面受到 XSS 攻击。 如果黑客使用特定脚本,黑客可以直接登录您的支票账户而无需验证。
虽然这不是一个新概念,但它是黑客使用会话 cookie 能够执行的操作的扩展。
如何保护我的 WordPress 站点免受跨站点脚本攻击?
真正的问题是,专业黑客继续提出更明智的恶意文本变体,现在甚至可以绕过最好的跨站点脚本预防。
这真的是一种猫捉老鼠的游戏。
检测 XSS 攻击的最佳方法是使用插件,例如 iThemes Security Pro iThemes Security Pro 具有多种网站安全功能,可以构建您抵御跨站点脚本攻击的前线。 (稍后会详细介绍)。
将您的防御与像 BackupBudy 这样的 WordPress 备份插件结合起来也非常重要,如果最坏的情况发生,它可以恢复您网站历史中的较早点。
显然,在一个完美的世界中,这样的黑客攻击永远不会发生。 但是 XSS 攻击非常难以防御,这使得强化的 WordPress 安全性成为您的首要任务。
XSS 攻击的工作原理
攻击的工作方式取决于黑客发起的攻击类型。 虽然有多种类型的跨站点脚本,但它们都利用 JavaScript 来传播恶意恶意软件。如果您不熟悉 JavaScript,它是一种位于您网站的 HTML 代码之间的语言。 它能够创建执行稳健计算的特定变量。
说实话,开发人员可以使用 JavaScript 来执行几乎任何可以想象的功能。
例如,接收付款并将其存储在数据库中的 WooCommerce 站点可以使用 JavaScript 将登录信息和付款详细信息发送给其他人。
当黑客利用您站点代码中的此漏洞运行 JavaScript 时,这是一次全面的 XSS 攻击。 这种漏洞类型通常会出现在您网站上用户输入数据的几乎任何地方,包括以下形式:
- 弹出窗口
- 信息表
- 搜索栏
- 网址
请记住,数据输入字段不一定必须是可视的。 在某些情况下,它可能是站点代码中的一个错误变量,它从数据库或任何其他文件中调用了未经处理的数据。
持久性或存储性 XSS 攻击
假设您的网站是一个博客,有一个开放的评论部分。 如果您的一位用户为您留下评论,则该数据将发送到数据库并存储。
将您的站点配置为在将数据存储到数据库之前对其进行清理非常重要。 换句话说,它应该检查用户输入的评论是合法的还是恶意脚本。
如果没有这种检查,它可能会在 WordPress 中打开 XSS 漏洞。
这是它的工作原理:
一、黑客定位并利用漏洞
黑客使用扫描仪搜索 Internet 并定位存在跨站点脚本攻击漏洞的站点。 一旦找到一个站点,恶意脚本就会被植入该站点的评论部分。
在没有任何检查的情况下,您的站点会获取恶意脚本并将其发送到数据库。
2. 访问者查看您受感染的页面
对于普通网站访问者来说,黑客的数据看起来就像是标准评论。 这位访问者不知道的是,一个简单的评论是一个会窃取 cookie 的可执行代码。
任何访问该页面的人都会受到负面影响。
3. 浏览器 Cookie 盗窃
大多数用户通常会在他们的浏览器上始终打开多个选项卡,例如社交媒体、电子邮件、亚马逊、YouTube 和他们雇主的网站。
当用户访问受感染的站点并查看包含黑客评论的页面时,代码会立即执行并使黑客能够窃取浏览器 cookie。
这种攻击被称为跨站点攻击,因为他们能够从在任何选项卡上打开的每个网站窃取 cookie。
4. 利用被盗的 Cookie
黑客使用窃取的 cookie 伪装成经过身份验证的站点用户,例如在购物网站上进行非法购买。
攻击者还能够窃取帐户信息,例如密码和用户名,并侵入电子邮件以向整个联系人列表发送网络钓鱼电子邮件。
恶意的可能性似乎无穷无尽。
非持久性或反射性 XSS 攻击
这不是对网站访问者的攻击,而是对网站的攻击。
如果您是 WordPress 网站所有者,您可能自己打开了很多浏览器标签。
通常,WordPress 管理仪表板只是您经常打开的许多不同选项卡之一。 而这正是反射型 XSS 攻击成为可能的原因。
它是如何发生的:
1. 网站所有者被恶意链接所吸引
在某些情况下,黑客会向您的电子邮件发送恶意链接,希望您会中了他们的小把戏。
在其他情况下,黑客会在其他网站上放置恶意链接。
如果您单击这些链接之一,脚本将从外部站点加载到您的 WordPress 站点。
2. 获取会话 Cookie
当您点击恶意链接时,您就会执行他们使用的代码。 这将使黑客能够窃取您的 cookie 并访问您的 WordPress 网站的管理员帐户。
在他们获得对该站点的完全管理访问权限后,他们可以轻松窃取敏感数据和登录凭据。 他们甚至可以将您锁定在您的网站之外或使用它来运行任意数量的不同黑客攻击。
可怕的是他们会以你的名义完成。
正确执行的 XSS 攻击将对您的业务和网站产生重大影响,并可能无法挽回地损害您的信誉。 从这些攻击中恢复可能会花费您大量宝贵的时间和辛苦赚来的钱。
这就是为什么采取一切可能的预防措施如此重要的原因。
WordPress 跨站脚本预防:5 个步骤
没有简单的方法可以这么说,但不存在避免网络犯罪的万无一失的计划。 最好的办法是为常规 WordPress 安全审计制定一个可靠的计划。 避免 XSS 攻击的第一步是立即开始准备这些步骤。
1. 下载并安装 iThemes Security Pro 插件
要开始保护您的站点,请下载并安装 iThemes Security Pro 插件。
立即获取 iThemes Security Pro
2. 保护您的用户免受会话劫持
简而言之:您应该为您的 WordPress 网站上的管理员和编辑提供会话劫持保护。为什么? 正如我们之前提到的,每次您登录网站时,ordPress 都会生成一个会话 cookie。 假设您有一个已被开发人员放弃且不再发布安全更新的浏览器扩展。 不幸的是,被忽视的浏览器扩展有一个漏洞。 该漏洞允许不法分子劫持您的浏览器 cookie,包括前面提到的 WordPress 会话 cookie。 同样,这种类型的黑客被称为会话劫持。 因此,攻击者可以利用扩展漏洞来捎带您的登录名并开始对您的 WordPress 用户进行恶意更改。

iThemes Security Pro 可信设备功能使会话劫持成为过去。 如果用户的设备在会话期间发生变化,iThemes Security 将自动将用户注销,以防止用户帐户上发生任何未经授权的活动,例如更改用户的电子邮件地址或上传恶意插件。
iThemes Security Pro 中的受信任设备功能可用于识别您和其他用户用于登录您的 WordPress 站点的设备。 识别出您的设备后,我们可以阻止会话劫持者和其他不良行为者对您的网站造成任何损害。
当用户登录到无法识别的设备时,受信任的设备可以限制其管理员级别的功能。 这意味着,如果攻击者能够闯入您的 WordPress 网站的后端,他们将无法对您的网站进行任何恶意更改。
在这种情况下,您将收到一封电子邮件,让您知道有人从无法识别的设备登录到您的站点。 该电子邮件包含阻止黑客设备的选项。 然后你就可以哈哈大笑,知道你毁了一个坏人的一天。
可信设备的另一个好处是它使会话劫持成为过去。 如果用户的设备在会话期间发生变化,iThemes Security 将自动将用户注销,以防止用户帐户上发生任何未经授权的活动,例如更改用户的电子邮件地址或上传恶意插件。
要开始使用可信设备,请在安全设置的主页上启用它们,然后单击配置设置按钮。

在 Trusted Devices 设置中,决定您要使用该功能的用户,然后启用Restrict Capabilities和Session Hijacking Protection功能。

启用新的受信任设备设置后,用户将在 WordPress 管理栏中收到有关待处理的无法识别设备的通知。 如果您当前的设备尚未添加到受信任设备列表中,请单击“确认此设备”链接以发送授权电子邮件。

单击无法识别的登录电子邮件中的确认设备按钮,将您当前的设备添加到受信任设备列表。

启用可信设备后,用户可以从他们的 WordPress 用户配置文件页面管理设备。 在此屏幕中,您可以批准或拒绝可信设备列表中的设备。

此外,您可以选择注册一些第三方 API 以提高可信设备识别的准确性,并使用静态图像地图来显示无法识别的登录的大致位置。 查看受信任的设备设置以查看可用的集成,

3. 激活版本管理以保持您的主题和插件更新
很难跟踪每个已披露的 WordPress 漏洞——我们会在我们的 WordPress 漏洞综述中跟踪并分享它们——并将该列表与您在网站上安装的插件和主题的版本进行比较。 但是,这并不能阻止 WordPress 黑客针对具有已知漏洞的插件和主题。 在您的网站上安装具有已知漏洞的软件可为黑客提供接管您网站所需的蓝图。
iThemes Security Pro 中的版本管理功能允许您自动更新 WordPress、插件和主题。 除此之外,当您运行过时的软件并扫描旧网站时,版本管理还可以选择加强您的网站。
要开始使用版本管理,请在安全设置的主页上启用该模块。

现在单击“配置设置”按钮以仔细查看设置。

4. 打开 iThemes 安全站点扫描
iThemes Security Pro 站点扫描会检查您的网站是否存在已知的 WordPress、插件和主题漏洞,并在可用时应用补丁。
要在新安装时启用站点扫描,请导航到 iThemes Security Pro 设置并单击站点扫描设置模块上的启用按钮。

要触发手动站点扫描,请单击位于安全设置右侧栏的站点扫描小部件上的立即扫描按钮。

站点扫描结果将显示在小部件中。

如果站点扫描检测到漏洞,请单击漏洞链接以查看详细信息页面。

在站点扫描漏洞页面上,您将看到是否有针对该漏洞的修复程序。 如果有可用的补丁,您可以单击“更新插件”按钮在您的网站上应用此修复程序。
在补丁可用和 iThemes 安全漏洞数据库更新以反映修复之间可能存在延迟。 在这种情况下,您可以将通知静音,以便不再收到与漏洞相关的任何警报。
重要提示:在您确认当前版本包含安全修复程序或漏洞不会影响您的站点之前,您不应忽略漏洞通知。
5.打开文件更改检测
要开始监视文件更改,请在安全设置的主页上启用文件更改检测。

一旦文件更改检测已启用,安全的iThemes Pro将开始扫描所有网站的文件的块。 分块扫描文件将有助于减少监视文件更改所需的资源。
初始文件更改扫描将创建您网站文件及其文件哈希的索引。 文件散列是文件内容的缩短的、非人类可读的版本。
初始扫描完成后,iThemes Security Pro 将继续分块扫描您的文件。 如果在后续扫描之一中文件哈希发生更改,则意味着文件的内容已更改。
您还可以通过单击“文件更改检测”设置中的“立即扫描文件”按钮来运行手动文件更改

总结:跨站脚本和保护您的 WordPress 网站
我们希望本指南能帮助您了解 WordPress 站点上跨站点脚本的风险。 通过实施一些 WordPress 安全最佳实践以及上述 5 个步骤,您将拥有更好的防线。
自 2011 年以来,Kristen 一直在编写教程来帮助 WordPress 用户。您通常可以找到她为 iThemes 博客撰写新文章或为 #WPprosper 开发资源。 工作之余,克里斯汀喜欢写日记(她写了两本书!)、远足和露营、烹饪以及与家人一起进行日常冒险,希望过上更现代的生活。
