跨站点脚本 (XSS):它是什么以及如何修复它?
作为最常见的网络安全威胁之一,跨站脚本 (XSS) 几乎受到了攻击 75% 的大公司 早在 2019 年。此外,几乎 40% 的网络攻击都是针对 XSS 漏洞进行的。
跨站点脚本已经影响了由 eBay、谷歌、Facebook 和 Twitter 等网络巨头运营的网站。 但跨站点脚本并不是新的网络威胁。 事实上,XSS 攻击几乎从 Web 诞生之初就已经存在。
为了帮助您防止 XSS 攻击,本指南重点介绍您需要了解的有关跨站点脚本的所有信息。 阅读本指南后,您将更好地了解跨站点脚本的工作原理以及如何保护您的 WordPress 网站。
什么是跨站脚本 (XSS)?
跨站点脚本 (XSS) 是指将恶意脚本注入其他可信和受信任的网站的网络攻击类型。
HTML、Flash、ActiveX 和 CSS 中可能存在跨站点脚本攻击。 然而,JavaScript 是网络犯罪分子最常见的目标,因为它是大多数浏览体验的基础。
JavaScript 是一种编程语言,可让您在网站上实现复杂的功能。 Web 上的大多数大型交互式网站都是使用 JavaScript 构建的。 “您可以开发现场互动功能、游戏或添加额外功能以更好地营销您的产品,”Domantas Gudeliauskas 的营销经理如是说 齐罗 项目。
JavaScript 在网络社区中如此受欢迎,因为它可以让您在网页上执行几乎任何操作。 那就是它变得有问题的时候。 网络犯罪分子可以使用 JavaScript 登录到您的网页背面并插入恶意脚本。
跨站点脚本如何工作?
网络犯罪分子有两种方式对 WordPress 网站进行 XSS 攻击。 他们可以利用用户输入或绕过同源策略。 让我们看一下这两种方法,以进一步了解跨站点脚本。
操纵用户输入
网络犯罪分子执行 XSS 攻击的最常见方式是利用用户输入。 大多数 WordPress 网站都有用户输入字段,例如搜索栏、评论表单、登录页面和联系表单。 输入字段通常由 JavaScript 驱动的 WordPress 插件或网站上活动的主题启用。
问题在于,并非所有 WordPress 插件和主题都是 100% 安全的,而且其中许多确实存在 XSS 漏洞。 这对您来说意味着网络犯罪分子可以利用输入字段中的 WordPress 漏洞来运行恶意活动。
理想情况下,站点搜索栏(或任何其他用户输入字段)应该只接受纯文本而不是命令作为输入。 但是,WordPress 确实存在用户输入漏洞,该漏洞允许黑客在输入字段中输入执行代码并将其发送到数据库。
绕过同源策略
同源策略限制一个页面从其他网页检索信息。 根据该政策,Web 浏览器允许包含在第一个网页中的脚本访问第二个网页中的数据,前提是它们共享相同的来源。 这有助于确保不发出跨站点请求。
该政策规定,如果您在同一浏览器中打开您的 Facebook 页面和网上银行,则这两个网站不能相互共享信息。 但是,如果您打开了多个 Facebook 选项卡(共享同一来源),它们可以在彼此之间交换脚本和其他数据。
尽管采取了同源策略和其他安全措施来防止跨站点请求,网络犯罪分子还是找到了使用会话 cookie 绕过该策略的方法。 这是因为每次您打开浏览器时,它都会生成一个会话 cookie 来验证您是否是网站用户,并帮助您顺利地从一个页面移动到另一个页面。
会话 cookie 存储登录凭据(包括您的 WordPress 站点)、信用卡信息、发货详细信息和其他敏感数据。 这是它的工作原理。 假设您想登录您的网上银行账户。 当您打开网站时,会生成一个会话 cookie。 如果不是会话 cookie,您每次想要切换页面时都必须登录您的网上银行帐户。
用户的浏览器存在漏洞并不少见。 如果有的话,网络犯罪分子会使用他们注入用户输入的代码来窃取会话 cookie。 这样,黑客就可以窃取在用户浏览器中打开的所有网站的cookies。 然后,这些 cookie 可用于登录用户的帐户以冒充他们并窃取财务数据。
为什么跨站点脚本很危险?
跨站点脚本是最常见的高风险 WordPress 漏洞之一。 XSS 攻击之所以如此普遍,是因为与其他安全漏洞不同,它们的解决非常复杂。 即使您有内置保护,也很容易犯错误以启用跨站点脚本。 网页的 HTML 或 JavaScript 中只有一个错误会使您的网站容易受到跨站脚本攻击。
当攻击者找到利用 XSS 漏洞的方法时,他们可以窃取帐户凭据、财务数据并促进网络钓鱼诈骗。 他们还可以传播计算机蠕虫或远程访问用户的计算机。 此外,XSS 攻击允许黑客执行以下操作:
- 劫持用户帐户
- 传播恶意软件
- 远程控制用户的计算机
- 扫描和利用 Intranet 应用程序
XSS 攻击通常被认为没有 SQL 注入那么危险。 然而,当与社会工程结合使用时,跨站点脚本允许网络犯罪分子实施高级且极其危险的攻击,包括植入木马、键盘记录、网络钓鱼、身份盗用和跨站点请求伪造。
为了对抗 XSS 攻击,大型 IT 公司推出了特殊的漏洞赏金计划。 这些程序由许多组织实施,并为在脚本中报告 XSS 漏洞的用户提供补偿或认可。 通过这种方式,公司通过让其他开发人员识别他们的错误来投资网络安全。 谷歌甚至推出了 游戏 您可以在其中练习调度 XSS 错误。
XSS 攻击的类型
跨站点脚本攻击主要分为三种类型:反射型、存储型和基于 DOM 的 XSS。 为了更好地了解 XSS 的工作原理,让我们来看看每种类型的 XSS 漏洞。
存储的跨站点脚本
当用户输入存储在数据库、评论字段、访问者日志或其他目标服务器中时,就会发生存储型 XSS 漏洞(又名持久性或 I 型)。 然后受害者可以从 Web 应用程序中检索存储的数据(尚未确保在浏览器中呈现的安全数据)。 这样,当黑客进行攻击时,有效载荷对于浏览器的 XSS 过滤器是不可见的,如果受害者访问受影响的页面,他们可能会意外触发有效载荷。
反射式跨站脚本
当 Web 应用程序立即在搜索结果、错误消息或任何其他响应中返回用户输入时,就会发生反射型 XSS 漏洞(又名非持久性或类型 II)。 在这种情况下,用户输入的数据被反映而不被存储,从而允许黑客注入恶意的 XSS 脚本。 与存储型 XSS 不同,反射型 XSS 以网站本身而不是网站访问者为目标。
基于 DOM 的 XSS
基于 TA DOM 的 XSS 漏洞(又名 Type 0)发生在 DOM(文档对象模型)而不是 HTML 部分。 读取恶意代码的源可以是 URL 或 HTML 的特定元素。
如何防止跨站脚本攻击?
现在,您已经了解了 XSS 基础知识,让我们来看看经过验证的防止 XSS 攻击的方法。
有多种方法可以保护您的 WordPress 网站免受 XSS 攻击。 如果您拥有高级技术专长,则可以添加代码片段来验证和清理用户输入。 但是,如果您不熟悉 WordPress 的技术部分,最好将工作委派给您的技术团队或聘请可以为您采取这些措施的专业人员。
同时,您可以做两件事来防止跨站点脚本攻击。
安装安全插件
安装安全 WordPress 插件是实现 WordPress 网站最终安全性的第一步。 选择安全插件时,请使用此清单作为参考,以确保插件具有确保您的网站安全所需的功能。
- 插件会定期扫描您的网站以查找恶意软件。
- 插件使用防火墙来阻止任何看似恶意的流量。
- 插件能够实施 WordPress 强化措施。
- 插件允许您管理所有 WordPress 更新。
- 一个插件备份您的 WordPress 网站,因此在受到攻击的情况下,您可以恢复您的网站。
安装专用插件
安装反 XSS 插件是防止跨站点脚本的另一种方法。 Anti-XSS 插件通过阻止跨站点脚本攻击中常用的参数来工作。 例如,这些插件可以保护用户输入字段,例如您网站的评论表单、登录字段或搜索栏。
底线—— 39% 的 WordPress 漏洞 与跨站点脚本问题有关。 公司在与跨站点脚本攻击的后果作斗争时损失了数百万美元。 为了避免针对您网站的 XSS 攻击,了解什么是跨站点脚本并采取预防措施非常重要。
为了保护您的网站免受跨站点脚本的影响,您应该验证和清理您的输入字段。 此外,您可以安装安全和专用的反 XSS 插件,以帮助您保持 WordPress 网站的安全。