你知道哪些与WordPress有关的安全问题?

你知道哪些与WordPress有关的安全问题?插图

WordPress是全球最流行的内容管理系统(CMS),为当今所有网站中超过三分之一的网站提供支持。但同时它的受欢迎程度也使它成为网络攻击的目标,而且它也有自己的安全漏洞。虽然WordPress可能有它自己的安全问题,但它并不是唯一被网络犯罪分子盯上的平台,因为盗取数据已经成为一项非常有利可图的业务。

从个人博客到大型商业网站,没有人能够幸免于恶意行为者带来的潜在威胁。无论你的WordPress网站是一个小博客还是一个大型企业,你都需要知道如何保护你的网站,无论其目的如何。所以说,平时要做好网站备份是很重要的。

这里有一些你应该知道的WordPress安全问题以及如何解决它们。

1. 插件系统

使WordPress如此受欢迎的部分原因是它的模块化。由于有了插件系统,你可以快速和容易地扩展基本功能。不幸的是,并不是所有的插件都是按照UpdraftPlus的高标准创建的,有些插件会给你的WordPress网站带来新的漏洞。

例如,”PWA for WP & AMP “插件将超过20,000个WordPress网站暴露在一个访问控制漏洞中。由于允许任意文件上传,攻击者可以远程执行代码并接管运行该插件的网站。 用户应该从这个例子中意识到两件事。第一是尽可能限制你的WordPress网站上使用的插件数量。第二是确保你所有的应用程序–包括插件和WordPress版本–都定期更新。更新有时会增加新的功能,但其主要目的是为了解决新发现的漏洞。

2. SQL注入攻击

数据是一种新的和非常有价值的商品,而攻击者将网站作为目标的一个原因是为了窃取数据库中的信息。SQL注入是一种很常用的攻击方式,攻击者在网站上嵌入SQL命令,可能会泄露敏感信息。

如果你想知道这种情况是如何发生的,想想你在许多WordPress网站上发现的普通表格。它允许用户提供信息,如用户名和密码用于登录。如果攻击者在这些字段中插入SQL代码,底层数据库可能会处理这些代码并执行意想不到的操作。 有几种方法可以努力防止SQL注入攻击,但最常见的是实施严格的输入验证。例如,你可以在你的.htaccess文件中添加以下代码,以确保所有输入都被排除在SQL查询之外。


# Enable rewrite engine
RewriteEngine On

RewriteRule ^(.*)$ – [F,L]

# Block MySQL injections

RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]

RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(..//?)+ [OR]

RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC,OR]

RewriteCond %{QUERY_STRING} =PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC,OR]

RewriteCond %{QUERY_STRING} (../|..) [OR]

RewriteCond %{QUERY_STRING} ftp: [NC,OR]

RewriteCond %{QUERY_STRING} http: [NC,OR]

RewriteCond %{QUERY_STRING} https: [NC,OR]

RewriteCond %{QUERY_STRING} =|w| [NC,OR]

RewriteCond %{QUERY_STRING} ^(.*)/self/(.*)$ [NC,OR]

RewriteCond %{QUERY_STRING} ^(.*)cPath=http://(.*)$ [NC,OR]

RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]

RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]

RewriteCond %{QUERY_STRING} (<|%3C).*iframe.*(>|%3E) [NC,OR]

RewriteCond %{QUERY_STRING} (<|%3C)([^i]*i)+frame.*(>|%3E) [NC,OR]

RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]

RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) [OR]

RewriteCond %{QUERY_STRING} ^.*([|]|(|)|<|>).* [NC,OR]

RewriteCond %{QUERY_STRING} (NULL|OUTFILE|LOAD_FILE) [OR]

RewriteCond %{QUERY_STRING} (./|../|…/)+(motd|etc|bin) [NC,OR]

RewriteCond %{QUERY_STRING} (localhost|loopback|127.0.0.1) [NC,OR]

RewriteCond %{QUERY_STRING} (<|>|’|%0A|%0D|%27|%3C|%3E|%00) [NC,OR]

RewriteCond %{QUERY_STRING} concat[^(]*( [NC,OR]

RewriteCond %{QUERY_STRING} union([^s]*s)+elect [NC,OR]

RewriteCond %{QUERY_STRING} union([^a]*a)+ll([^s]*s)+elect [NC,OR]

RewriteCond %{QUERY_STRING} (sp_executesql) [NC]

RewriteRule ^(.*)$ – [F,L]

3. 跨站脚本攻击

你知道哪些与WordPress有关的安全问题?插图1

XSS攻击的工作原理

与SQL注入攻击一样,跨站脚本(XSS)试图将恶意代码注入有漏洞的网站。一个例子是发布信息,将网站用户引向另一个网站,然后试图窃取个人数据。 这种情况可能是潜在的危险,因为其他网站可能甚至不需要用户的输入。它可以简单地扫描用户识别数据,如cookies、会话令牌等。

一般来说,你可以使用Web应用防火墙(WAF)防止XSS攻击。这个有用的工具允许你阻止网站的特定流量。大多数顶级WordPress安全插件,如All In One WP Security & Firewall,都会有这个功能。 如果你宁愿专注于运行你的WordPress网站,而想把安全问题交给专家处理,一体式WP安全与防火墙是一个很好的方法。它不仅可以帮助你阻止大多数类型的攻击,还可以扫描你的WordPress网站的漏洞,你可能没有意识到。

4. 暴力攻击

WordPress使用了一个凭证系统,允许管理员和其他授权用户访问其控制功能。不幸的是,许多用户倾向于使用弱的和明显的密码。 强力密码利用脚本对WordPress网站进行持续和多次登录尝试,直到成功。该脚本与一个数据库一起工作,该数据库拥有一个常用的用户名和密码的字典(如Admin和Password1),希望你会选择这些组合中的一个,而不考虑任何风险。

然而,你可以做几件事来限制暴力攻击的有效性。

  • 使用复杂和独特的密码
  • 阻止对WordPress管理目录的访问
  • 添加双因素认证(2FA)
  • 禁用目录浏览
  • 限制登录尝试的次数

5. 分布式拒绝服务攻击

你知道哪些与WordPress有关的安全问题?插图2

DDoS攻击试图通过模仿访客流量的大量请求来克服网站。

分布式拒绝服务(DDoS)攻击包括针对一个网站的大量洪水请求。这种洪水旨在削弱网站,使其无法被普通访客访问,因为它无法应付大量的请求。 虽然DDoS不是WordPress独有的,但基于这种内容管理系统的网站可能特别脆弱,因为它需要比普通静态网站更多的资源来提供请求。 然而,不可能防范坚定的DDoS洪水,但即使是最著名的组织也屈服于这些攻击。这方面的一个例子是2018年的GitHub攻击,他们的网站受到了20分钟的DDoS洪水攻击。

一般来说,较小的网站不会成为如此大规模的目标。然而,为了减轻较小的DDoS浪潮,确保你使用内容分发网络(CDN)。这些服务器网络可以帮助平衡传入的负载,并帮助更快地提供内容。

6. 跨站请求伪造攻击

跨站请求伪造(CSRF)攻击是攻击者迫使WordPress等网络应用程序识别虚假认证的另一种方式。WordPress特别容易受到攻击,因为这些网站一般持有许多用户凭证。 CSRF攻击在许多方面与前面讨论的XSS攻击相似。主要区别是CSRF需要一个认证会话,而XSS不需要。不管怎么说,其最终目的是将访问者引向另一个位置以窃取数据。

在大多数情况下,CSRF预防需要在插件层面上实施。开发人员通常使用反CSRF令牌来连接特定用户的会话。WordPress网站所有者只能依靠插件更新和一般网站加固技术来帮助防止CSRF攻击。

一些可能起作用的加固行动包括。

  • 禁用文件编辑器
  • 有针对性的PHO执行块
  • 2FA的执行

最后总结

有时有一种误解,认为WordPress是一个高度脆弱的网络应用程序。其实这并不是一个完全公平的说法,部分原因源于WordPress的广泛使用,但更重要的原因是网站所有者没有采取必要的适当预防措施。我们常常认为安全是理所当然的,而没有想到很多时候自己设置的简单密码是最根本的安全问题,比如设置密码为123456。因此网站所有者不仅要对其网站的完整性负责,还要对其用户的数据安全负责。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容