WordPress 和跨站脚本 (XSS)
已发表: 2022-11-02跨站点脚本攻击是互联网上最常见的网站攻击类型之一。 了解它们是什么以及如何防范它们对于保护您的网站、访问者和业务的安全至关重要。 请继续阅读以了解更多信息!
什么是跨站脚本攻击?
当一段恶意代码(通常是 JavaScript)被注入网页以伤害最终用户时,就会发生跨站点脚本攻击(通常称为 XSS 攻击)。
此代码通常作为参数插入到 URI(统一资源标识符)的末尾,或者通过使用网页上的 Web 应用程序(例如用户输入表单)插入。 恶意代码通常会被设计为覆盖访问控制并操纵网站的功能。
跨站脚本漏洞
正如我们所见,XSS 攻击是一种基于 Web 的攻击,它使用恶意代码来访问易受攻击的网站并进行有害活动。 这句话的关键词是“脆弱”。 这(不幸的是!)可能意味着很多很多事情。 即使已采取所有其他安全预防措施,使用“admin”和“123456”作为用户名和密码的 WordPress 网站也容易受到攻击。 运行过时插件的 WordPress 网站可能被视为易受攻击。 甚至在表单中包含用户输入并且不对提交的值进行验证或编码的 Web 应用程序也将被视为易受攻击。
部署 XSS 攻击的黑客一直在寻找可以利用的漏洞。 可以理解的是,那些更常见并因此打开更多网站进行攻击的漏洞受到青睐,但黑客会寻找更隐蔽的漏洞来攻击他们认为对他们作为黑客具有高价值的网站。
存在如此多的潜在漏洞和各种攻击类型的事实使得识别潜在的弱点和缓解攻击成为一项棘手的工作。
目标网站
基于 Web 的电子邮件服务器或客户端、CRM / ERP 系统、公开可用的个人资料页面(例如在社交媒体网站和会员组中常见的页面)只是某些类型的网站和应用程序,它们是 XSS 攻击的绝佳目标.
其他通常易受攻击的站点是用户可以发布其他人可以查看的 HTML 格式文本的站点,例如在论坛或评论字段中。
跨站点脚本的类型
根据注入的代码是在服务器上运行还是仅在尝试攻击的人的浏览器中运行,称为跨站点脚本 (XSS) 的攻击可以分为三种主要类型。 这些如下:
- 持久(或存储)XSS,攻击者注入的代码永久存储在服务器上。
- 非持久性(或反射性)XSS,其中攻击是通过最终用户被欺骗使用的精心制作的 URL 进行的。
- 基于 DOM 的 XSS(或客户端 XSS)与所有其他类型一样,也在访问者的浏览器中执行,不同之处在于它会改变站点的 DOM。
跨站点脚本 XSS 的影响
任何 XSS 攻击可能产生的影响都会因一系列因素而异。 最大的问题之一是存储的数据和攻击目标的敏感性。 对烹饪论坛的评论显然不如国家政府网站上的秘密敏感!
通常,XSS 攻击的目标是使用网站或应用程序的个人。 根据攻击类型和注入的脚本,攻击者可能会窃取受害者的会话 cookie 和个人数据,例如访问凭据。 攻击还可能试图解除敏感信息,例如信用卡数据(假设存在)。
XSS 攻击的特别可怕之处在于它们被有效地掩盖了……因此,被攻击的用户可能会表现为可能造成恶意破坏的个人,而他们很可能不知道有什么不对劲。
显然,这对企业的影响可能很大。 任何破坏网站并可能泄露敏感信息的黑客行为都是坏消息。 严重程度取决于攻击的严重程度和对客户的影响。
保护您的 WordPress 网站免受 XSS 攻击
WordPress 网站遭受了相当多的 XSS 攻击。 部分原因是由 WordPress 提供支持的网站数量庞大(目前全球 43.1%)。 这也是许多 WordPress 插件存在的许多 XSS 漏洞的结果。 反过来,从统计学上讲,这意味着 WordPress 网站上使用的插件越多,遭受 XSS 攻击的可能性就越大。
因此,为了将 WordPress 网站的 XSS 漏洞降至最低,您通常需要验证和清理攻击者 URL 中可能包含的任何变量。 以下是一些通用提示以及一些其他更专业的解决方案,您可以将其应用于您的网站以帮助保护它。
保持最新!
确保您将核心文件、插件和主题更新到最新版本对您网站的安全至关重要。 这样做可以降低网站遭受各种形式攻击的风险,尤其是 XSS 攻击。
有关您可以采取的保护 WordPress 网站的一般步骤的更多详细信息,请务必查看我们的文章如何保护您的 WordPress 网站。
部署“防止 XSS 漏洞”插件
也许不出所料(因为这是 WordPress),已经开发了一个可以帮助降低 XSS 攻击风险的插件。 它被称为“防止 XSS 漏洞”
安装并激活插件后,转到其设置页面,在将出现的“Reflected Cross-site scripting(XSS)”菜单项下。
默认情况下,Prevent XSS 插件配置从 URL 阻止的一系列实体。 这有助于阻止攻击。 除了默认设置外,您还可以指定其他希望阻止 URL 访问的实体。
插件在 URL 中编码的实体也是如此。 您可以排除您不希望在提供的 tex tarea 中编码的实体,方法是用逗号分隔它们。
它还通过转义 $_GET 参数中的 HTML 来保护漏洞。 因此,如果有人试图在 URL 中注入 HTML,它将不起作用。
当您安装插件并完成调整设置时,至少随机检查几个页面以确保您的网站正常运行,这一点非常重要。 如果您使用的是 WooCommerce,这一点尤其重要。 在这种情况下,请确保您完成整个结帐流程(包括付款)以确保其有效。
保护输出数据
除了在从访问者收到输入时验证输入,您还应该对所有输出数据的 HTTP 响应进行编码。 实际上,这意味着每个字符都应转换为其 HTML 实体名称。
如果您是 WordPress 开发人员,那么有一本关于转义输出数据的出色手册值得一读。
使用 Pressidium 进行 XSS 攻击防护
如果您使用 Pressidium 托管,您将自动享受我们的托管 Web 应用程序防火墙层的保护,该层将以多种方式保护您的网站,包括 XSS 攻击。 这使您可以专注于您的业务,而不必担心您的网站。 在此处了解有关 Pressidium 平台功能的更多信息。