WordPress作为世界上最流行的CMS(内容管理系统),占据全球60.4%的市场份额,这个数字远远高于第二名的Joomla!(5.2%的市场份额)。因此,在互联网上有超过三分之一的网站采用WordPress构建。
当然,在WordPress作为世界上最流行的CMS(内容管理系统)的同时,也是会成为不少黑客攻击的目标,但只要您能保持WordPress系统的及时更新,并且能够保证一些常用插件的及时更新,这种类似问题还是可以避免的。
什么是WordPress中的XSS跨站脚本?
WordPress中的XSS跨站脚本攻击是一种网站安全攻击,它在安全性较差的Web应用程序中发现。其原理是将脚本语言中的恶意代码注入易受攻击的网站,例如,在论坛中发布一条消息,将用户重定向到假网站(网络钓鱼)或窃取信息(Cookie)。这种攻击的主要目的是窃取其他用户的身份数据 – Cookie,会话令牌和其他信息。在大多数情况下,此攻击用于窃取他人的Cookie。
WordPress中的XSS跨站脚本是在WordPress网站上进行的一种黑客攻击。这种攻击有两种方式:
- 通过利用用户输入
- 通过绕过同源政策
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跨站攻击防御插件 Prevent XSS Vulnerability 提供的功能为Reflected XSS
和Self-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攻击可以为您省去很多麻烦。注意安全!