7漏洞您的WordPress安全插件无法保护您免受保护(以及如何手动修复它们)
已发表: 2025-01-27如果您像大多数WordPress用户一样,那么您可能已经安装了一个安全插件,以帮助确保您的网站安全。这是一个绝佳的第一步,可以处理您的大部分保护 - 尤其是如果您启用了两因素身份验证。
但是请注意,我强调了第一步。我之所以这样做,是因为许多人认为这是他们需要采取的唯一步骤。如果您真正关心网站的安全性,那么就不应该这样做。
好消息是,有了一些轻度的手动配置,您可以在服务器级别增强WordPress安全性,并使您的网站对攻击具有更大的抵抗力。作为额外的奖励,您会在这样做时感觉像是WordPress安全专家 - 可以说是整个过程中最重要的部分。 😉
因此,如果您准备从休闲的WordPress用户转换为专业人士并使您的网站防弹,那么让我们开始。
工具箱
信不信由你,要实现这一点,您只需要三个(可能是四个)工具即可。
- Sucuri站点检查:免费工具来运行您的初始扫描并验证更改。
- 安全标头:另一个免费的工具,可提供有关网站安全配置的详细反馈。
- 访问您的托管控制面板:我正在使用CPANEL,但是如果您还有其他事情,我将介绍该怎么办。
- 文本编辑器(也许):您的托管控制面板可能内是内置的,因此可能不需要,但是我在这里列出它,以防万一。
上面列表中最复杂的事情将是访问CPANEL。这并不困难,但是每个托管公司都有自己的方式来做到这一点,如果您以前从未这样做,那么您需要弄清楚它。
接近它的最简单方法(如果不确定)是访问托管公司的网站知识库并搜索“ CPANEL”。如果那没有到任何地方,请与他们的客户支持联系。
运行您的初始安全检查
在开始修补网站的代码之前,您首先要检查其当前如何处理安全性。我将向您表明您非常具体的更改,因此您想确保它们实际上是您网站所需的。
在大多数情况下 - 尤其是如果您依靠共享托管 - 您将需要制作它们。但是,在一些高级管理的WordPress托管计划中,您的主人可能会代表您进行调整。因此,为什么事先进行这些扫描很重要。
Sucuri网站检查
首先,请前往Sucuri的网站检查工具,然后将您的网站地址粘贴到扫描仪中:
单击提交,让Sucuri发挥其魔力。
出于本教程的目的,我故意未受保护的个人网站,向您展示标准WordPress配置的外观(在进行编辑之前):
如您所见,扫描显示了您在任何典型的WordPress设置中都会看到的五个安全空白。我将在稍后解释它们的意思。
安全标头
苏里里(Sucuri)给了我们一个好鸟的眼光,让我们暂时让我们变得书呆子,检查一下安全标头要说的话。第一步与Sucuri完全相同 - 只需键入或将您的网站地址粘贴到工具中,然后单击扫描。
根据您的网站的大小,结果可能需要一秒钟到……更长的时间。 😅我的最初结果看起来像这样:
所有的红色和巨型F可能看起来有些吓人,但实际上为我们提供了一些非常有用的信息。这些红色标记中的每一个都指出了一个缺少的安全标头,使您的网站更加脆弱。
我还要重申,即使在网站上安装了WordFence或其他一些安全插件,您也会看到这些结果。例外是如果您的托管公司或其他人将我们要在您面前进行编辑。
了解所有的危险信号
现在,让我们组织扫描发现的所有内容 - 工具之间存在一些重叠,但是每个工具也遇到了一些独特的问题。
问题两个工具都捕获了🤝
- 内容 - 安全性完全缺少 - 这意味着没有控制网站上可以加载的脚本和内容的内容。 ℹ️ 没有这些控件,可能会注入恶意代码并在您的页面上运行,从而损害您的网站和访问者。
- 缺少X帧选项,这使该站点很容易通过未经授权的嵌入而遭受点击夹克尝试。 ℹ️ Click Jacking是当攻击者欺骗用户点击与他们所看到的不同事物时,通常是通过将合法网站分层在恶意内容的情况下。
- 尚未设置内容类型的选项,这可以实现MIME类型的混乱攻击。 ℹ️ 当将浏览器欺骗将一种类型的文件视为另一种文件时,可能会执行有害代码时,就会发生MIME型混乱。
Sucuri的独特发现🔍
- PHP版本在HTTP标题中可见。 ℹ️ 当攻击者可以看到您的PHP版本时,他们确切地知道哪些漏洞可能与您的网站相对 - 例如拥有安全系统的蓝图。
安全标题的额外见解🔬
- 没有推荐人政策。 ℹ️ 如果没有此政策,您的网站可能会泄露有关用户浏览模式的敏感信息,以将其泄露给其他网站。
- 权限策略尚未配置。 ℹ️ 这意味着您网站上的任何页面都可以潜在地要求访问访问者的摄像头,麦克风或位置数据,而无需限制。
- 缺少严格的传输安全。 ℹ️ 没有此标头,与您的网站的连接可能会从HTTP降级到HTTP,从而使它们容易受到拦截。
解决这些问题的优点在于,您不需要了解每个技术细节 - 您只需要正确实施解决方案即可。方便地,这正是我们要做的。
找到服务器文件的方式
假设您像我一样具有CPANEL,请单击仪表板中的文件管理器:
如果您使用的是CPanel以外的其他东西,则可以下载Filezilla(它是免费的,这是有关如何使用它的快速指南)。安装后,使用托管仪表板上的FTP详细信息连接到服务器:
- 主机:
ftp.yoursite.com
- 仔细检查CPANEL FTP部分中的正确地址是否正确 - 用户名:
your-username
- 密码:
your-password
- 端口:
21
- 还检查这是您的设置使用的端口(CPANEL中的FTP)
一些主机还将为您提供自己的CPANEL替代方案,该替代方案的功能可能相似。换句话说,您可能绝对不必使用filezilla。如果不确定,请咨询客户支持。
找到.htaccess文件
登录后,您会看到一些看起来像计算机的文件浏览器的内容。我们需要找到一个称为.htaccess
的特定文件- 它控制您的服务器如何处理各种安全设置。找到它的最简单方法是在右上角使用CPANEL文件管理器搜索功能。 Filezilla用户可以依靠类似的功能。
在窗口中键入.htaccess
,然后单击GO 。
如果您只有一个链接到托管帐户的网站,则应该很简单。如果您有多个站点,请确保您要单击与要进行这些编辑的网站关联的.htaccess
文件。
要注意的另一个潜在的Tripwire细节是,即使在单个站点设置上,您也可能仍然有其他.htaccess
-ish文件。基本上是在其名称中具有.htaccess
的文件,又是其他单词或字符。
您不想要任何一个。您只想要一个称为.htaccess
的人,而别无其他。
将代码添加到.htaccess文件以解决安全问题
找到文件后,您需要在进行任何编辑之前下载它。这样,如果出现问题,您可以将其上传回文件夹。
没有什么应该出错的,但是要安全比您知道什么要好。
安全下载备份后,您可以继续编辑.htaccess
文件。在CPanel的文件管理器中,右键单击文件,然后选择“编辑” 。如果您使用的是filezilla,请右键单击并选择“查看/编辑” - 这将在默认文本编辑器中打开文件。
下一部分是整个任务的顶点。在这里,您可以在短时间内感觉像WordPress安全专家。在持续的过程中享受它。
将代码放入.htaccess
文件👨🏻💻
WordPress安装通常在此处有几个部分,其标记为以# BEGIN
开始和# END
的注释。
寻找这样说的行:
# END WordPress
最安全的方法是在此之后立即添加安全标头。如果您看不到确切的行,或者不确定,则可以在文件末端添加标头 - 只需确保在任何现有代码和新添加方面都留下空白。
这是代码:
# BEGIN Security Headers Header unset X-Powered-By php_flag expose_php Off Header set X-Frame-Options "SAMEORIGIN" Header set X-Content-Type-Options "nosniff" Header set Strict-Transport-Security "max-age=31536000; includeSubDomains" Header set Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval' *; script-src 'self' 'unsafe-inline' 'unsafe-eval' * data: blob:; style-src 'self' 'unsafe-inline' *; img-src 'self' data: *; frame-src 'self' *; font-src 'self' data: *; media-src 'self' *;" Header set Referrer-Policy "strict-origin-when-cross-origin" Header set Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=()" # END Security Headers
完成后,单击右上角的保存更改。对于非CPANEL用户,请在您自己的界面上找到任何等效按钮。
这样,您可以再次运行安全扫描以查看更改的影响。
重新运行安全检查
首先,检查安全标头:
还不错,是吗?
我们从F转到A。
谈论发光!
我们配置的每个安全标头都显示为正确实现。
接下来,让我们检查Sucuri:
更好,但奇怪的是,仍然有两个警告。
第一个实际上是一个假阳性,因为我知道我的网站在运行WordFence。除了Sucuri以外,我没有任何解释,无论出于何种原因,我都不认识Wordfence。如果您看到相同的警告,并且还知道已安装了WAF,请忽略它。
第二个消息有些不同。它还显示在安全标头结果中,低于我已经向您展示的出色的A等级报告:
这是事实:
尽管这两种工具都被标记为“危险”,但使用不安全的内线实际上是完全可以的。
WordPress需要某些JavaScript和CSS功能才能发挥作用 - 尤其是对于块编辑器和插件。因此,尽管技术上有更严格的方法来处理此问题(这就是这些Nonces的参考文献),但这样做会破坏您的网站。字面上地。
这里最好的类比是想一想一所房子。从技术上讲,您可以通过用水泥密封所有窗户和门来使您的房屋“更安全”,但这会使您的房屋变得无功能。这是同一想法。
总结
WordPress安全插件是良好安全策略的基础 - 但它们无法达到需要设置某些关键保护的服务器级别。
您看到的安全扫描的截图之前和之后,您看到的证明了这一点。
现在,您已经阅读了本教程,您也可以将WordPress安全性从“插件保护”中获取到“服务器级安全性”。
最后,作为安全性最佳实践,我还建议做以下操作:
- 每月进行这些安全扫描。
- 保留您的安全配置的文档。
- 在重大WordPress更新后进行测试,以确保所有内容仍然按预期工作。
- 更改您的登录页面地址。
- 限制登录尝试。
- 激活两因素身份验证(或简称2FA)。
- 保持插件和主题更新和删除您不使用的插件。
…还有很多。 WordPress安全性可以带您进入一个深兔子的洞,但是您在这里学到的知识足以使您开始,并且可以保护您的网站免受大多数攻击。
你有任何疑问吗?在评论中让我知道。我很乐意为您提供帮助。