WordPress中的XSS跨站脚本攻击修复和预防

WordPress作为世界上最流行的CMS(内容管理系统),占据全球60.4%的市场份额,这个数字远远高于第二名的Joomla!(5.2%的市场份额)。因此,在互联网上有超过三分之一的网站采用WordPress构建。

当然,在WordPress作为世界上最流行的CMS(内容管理系统)的同时,也是会成为不少黑客攻击的目标,但只要您能保持WordPress系统的及时更新,并且能够保证一些常用插件的及时更新,这种类似问题还是可以避免的。

WordPress中的XSS跨站脚本攻击修复和预防
WordPress中的XSS跨站脚本攻击修复和预防

什么是WordPress中的XSS跨站脚本?

WordPress中的XSS跨站脚本攻击是一种网站安全攻击,它在安全性较差的Web应用程序中发现。其原理是将脚本语言中的恶意代码注入易受攻击的网站,例如,在论坛中发布一条消息,将用户重定向到假网站(网络钓鱼)或窃取信息(Cookie)。这种攻击的主要目的是窃取其他用户的身份数据 – Cookie,会话令牌和其他信息。在大多数情况下,此攻击用于窃取他人的Cookie。 

WordPress中的XSS跨站脚本是在WordPress网站上进行的一种黑客攻击。这种攻击有两种方式:

  1. 通过利用用户输入
  2. 通过绕过同源政策

1. 利用用户输入

每个WordPress网站都有用户输入字段,包括站点搜索,评论表单,联系表单,登录页面等。所有这些输入字段均由您网站上活动的插件或主题启用。

用户在此处输入的信息将中继到您网站的数据库以进行处理和存储。理想情况下,这些输入区域应具有适当的网站安全措施,以验证用户输入的数据类型。 

在跨站点脚本攻击中,黑客利用输入字段中的WordPress漏洞将恶意代码插入网站。例如,站点搜索栏应仅接受纯文本,包括字母和数字。如果没有检查,黑客会利用它并输入恶意脚本。

恶意代码可能看起来像:

<script>alert("Hello");</script>

2. 绕过相同来源策略

在数字世界中,存在一种称为“同源起源策略”(SOP)的安全措施。它禁止一个网页从其他网页检索信息。这意味着,如果您在同一浏览器上打开了Facebook和PayPal帐户,则Facebook选项卡将无法访问,读取或修改PayPal选项卡的内容。这样可以确保没有跨站点请求。

尽管已采取措施确保其中一个选项卡无法从下一个选项卡读取信息,但黑客已使用会话cookie找到了解决该问题的方法。

登录网站时,浏览器(Google Chrome,Firefox,Safari等)会生成会话cookie。这可以验证您是否是该网站的用户,并使您可以从一个页面无缝切换到另一个页面。

例如,当您登录Facebook时,会生成一个会话cookie。如果会话cookie不存在,则每次您要切换页面(例如从个人资料切换到其他人的个人资料)时,都必须登录Facebook。

除了登录凭据外,Cookie还存储各种信息,例如信用卡信息,购物偏好和个人数据。


预防保护WordPress网站免受XSS攻击

有几种方法可以保护您的网站免受存储的XSS攻击。您可以尝试将代码添加到站点,以验证和清除通过用户输入发送到数据库的数据。但是,此类步骤需要技术专长。如果您不熟悉WordPress的内部功能,最好聘请专业人员为您实施这些措施。

最简单直接的方法就是安装 防止XSS漏洞插件 Prevent XSS Vulnerability

WordPress中的XSS跨站脚本攻击修复和预防
WordPress XSS防御插件 – Prevent XSS Vulnerability

WordPress XSS跨站攻击防御插件 Prevent XSS Vulnerability 提供的功能为Reflected XSSSelf-XSS

对于Reflected XSS,如果启用了该Enable Blocking选项,并且URL中包含任何易受攻击的代码,它将检查URL并重定向它。它仅阻止某些URL中不允许的参数,并显示“阻止参数”部分。如果您仍然喜欢使用它们,则可以从中跳过一些参数。

为了提供更高的安全性,Prevent XSS Vulnerability还请转义$_GET参数中的HTML,该参数通常用于从URL获取PHP中的参数并将其打印在HTML中。这样,如果有人在URL中提供HTML属性,则HTML属性将不起作用。

有许多测试插件的方法,但不同网站的结构和开发功能可能会有所不同。

WordPress XSS跨站攻击防御插件 Prevent XSS Vulnerability 可以转义解析绝大多数可能导致XSS跨站攻击的块脚本参数和编码参数,具体可阻止并屏蔽的包括:

块参数

Prevent XSS Vulnerability 如果从“插件设置”中启用,则阻止URL中的以下参数。

  • 开口圆括号 (
  • 闭合圆括号 )
  • 小于符号 <
  • 大于符号 >
  • 开口方括号 [
  • 封闭方括号 ]
  • 打开弯括号 {
  • 管道或立杆 |
  • 关闭弯括号 }

编码参数

Prevent XSS Vulnerability 如果已从“插件设置”中启用,则在URL中对以下参数进行结尾编码。

  • 感叹号 !
  • 双重报价 "
  • 单报价 '
  • 开口圆括号 (
  • 闭合圆括号 )
  • 星号标志 *
  • 小于符号 <
  • 大于符号 >
  • 严重口音“`
  • 盖帽标志 ^
  • 开口方括号 [
  • 封闭方括号 ]
  • 打开弯括号 {
  • 管道或立杆 |
  • 关闭弯括号 }

在$ _GET变量中转义HTML

Prevent XSS Vulnerability$_GET变量中转义HTML 。$_GET变量通常用于将URL中的值放入HTML。如果您的站点使用/从URL中获取任何内容并将其以HTML打印,则此检查非常有用。根据您的网站功能,它可以保护您的搜索和其他部分。

注意:激活插件后,请务必检查您的表格,如果您有WOCOMERCE Site,则还请检查购物车并检查程序。


总之,我们如果希望WordPress网站可以一直保持稳定运行,我们就需要在平时做一些常规的安全防御工作:

  • 始终保持您网站上的WordPress安全插件处于活动状态;黑客喜欢轻松的目标,他们在大型或小型WordPress网站之间没有偏见。如果您已采取基本的安全措施,则黑客将进行几次失败的尝试,然后继续下一个目标。
  • 保持WordPress网站更新;许多黑客攻击是由于主题和插件等过时的软件引起的。当开发人员发现软件中的安全漏洞时,他们将其修复并发布安全更新。将网站更新到新版本后,安全漏洞已修复。WordPress核心安装也是如此。WordPress开发人员进行威胁研究以修复安全漏洞。确保您始终使用最新的WordPress版本。
  • 使用SSL证书;配置SSL证书,使得网站支持 https 安全协议访问,可确保始终对从您的网站传输的数据进行加密。
  • 定期备份您的网站;如果您的网站受到攻击,则需要花费一些时间来找出攻击的根源以及如何解决。同时,您可以还原备份以使站点恢复正常。如果您是MalCare的客户,则会自动进行备份。

采取这些措施后,我们确定您的WordPress网站是安全的。防止XSS攻击可以为您省去很多麻烦。注意安全!

上一篇:

下一篇:

在线留言

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

官方微信

微信扫一扫 关注我们

返回顶部