WordPress 安全最佳实践

已发表: 2022-03-10

有很多关于 WordPress 安全性的神话和 FUD(恐惧、不确定性和怀疑)。 在强化网站以抵御潜在攻击时,需要考虑很多因素。 那么,企业如何学习 WordPress 安全最佳实践,从而为他们提供最好的网络保护呢?

上周,我主持了一场网络研讨会,以揭开 WordPress 安全问题的神秘面纱。 和我一起参加会议的还有 Ayush Malakar(Fresh Consulting 的全栈和 WordPress 开发人员)和 Sean O'Shaughnessy(WordPress VIP 解决方案工程负责人)。

通过四个指导性问题,这两位专家探讨了开发人员、管理员、网站所有者和高管应牢记的安全最佳实践。 让我们回顾一下我们谈论的内容。

开源软件安全吗?

并非所有开源都是平等的。 但随着 WordPress 出现 18 年,并为全球 40% 以上的网站提供支持,很明显,采用率正在增长。 但即使是世界上最流行的开源软件,也存在关于其安全漏洞的问题。 是不是所有公开的代码都容易受到攻击?

不一定,Ayush 说:“因为我们有这么多眼睛在注视它,所以它更安全。”

尽管看起来有悖常理,但开源软件实际上比闭源专有软件更安全。 这就是为什么。

更多关注潜在威胁

由于开源是公开运行的,因此没有什么可隐瞒的。 社区中的许多开发人员都在关注它并进行更新,从而激发信心和信任。 如果发现漏洞,会尽快修复——通常在一两天内。

持续的代码测试和错误赏金

任何人都可以为 WordPress 做出贡献,并且代码经过了数千名 WordPress 核心贡献者的社区的测试。 随着代码的不断测试,它越来越可靠。

此外,漏洞赏金计划鼓励公众发现漏洞和漏洞,包括暴力攻击、DDoS、网络钓鱼等。

安全更新

当安全更新发生时,网站开发人员需要确保核心代码保持最新并防止最新的攻击媒介。 自动更新也可用,企业开发人员应该考虑这些是否是每个项目的正确选择。

我的代码安全吗?

WordPress 核心只是组成 WordPress 网站的代码“桶”之一。 位于社区开发软件之上的是网站的应用程序代码——它的主题或前端,以及插件。

虽然开源 WordPress 核心代码是由社区开发的,但为单个网站编写或部署到单个网站的应用程序代码也可能引入安全漏洞。

您可以采取各种措施来确保您的应用程序代码尽可能地加强抵御攻击。 虽然您可能会针对不同的项目做出不同的决定,但取决于可接受的风险水平,最重要的是要了解潜在的攻击媒介。

在这里,我们的网络研讨会专家有一些建议。

WordPress安全工具

开发人员可以使用各种工具来帮助识别第一方和第三方代码中的安全漏洞。

“每当我们谈论工具时,我们都需要了解这些工具的优缺点以及我们应该如何最好地利用这些工具来发挥自己的优势?”

— Ayush Malakar,新鲜咨询

这些工具可以执行静态或动态代码分析。 静态分析是在不执行任何代码的情况下完成的,通常可以找出代码中大约 85% 的缺陷。 动态代码分析依赖于研究代码在执行期间的行为方式,并具有发现代码与其他系统组件(如 SQL 数据库、应用程序服务器或 Web 服务)交互导致的安全问题的额外能力。

权衡执行此代码分析的人与机器的好处很重要。 机器学习 (ML) 和人工智能 (AI) 可用作第一道防线,以确保识别常见证券。 但事后让人类查看代码也很有价值。 这确保了人类可以在不同方面工作,例如基于特征的漏洞、边缘案例等。

我们的专家推荐的一些工具:

  • WPScan 是一个 CLI 工具,开发人员可以使用它来扫描他们的代码以查找安全漏洞。 Ayush 建议开发人员在 cron 作业中运行它。
  • PHP_CodeSniffer (PHPCS) 检查代码并突出显示从语法到安全漏洞的问题。 WordPress 有一套特定的标准。 这可以设置为在持续集成 (CI) 管道中运行,并在所有 WordPress VIP 存储库中运行。
  • Fresh Consulting 使用 Sonar Cloud 进行静态代码分析,扫描 PHP 和 JS 代码中的漏洞和更安全的实现。

“我们是否进行了适量的输入验证? 我们是否正确地清理了我们将在代码中拥有的任何类型的输出?”

— Sean O'Shaughnessy,WordPress VIP

安全和 WordPress 插件

选择第三方插件时,请寻找具有良好评论和评级、大量下载以及在您的网站中使用的灵活性的插件。 确保插件已更新并与最新版本的 WordPress 兼容。

不要使用可以自己编写的插件。 尤其是在只需要少量代码的情况下,请在您的主题中编写此代码,而不是使用插件。 这将确保在更新插件时不会引入任何漏洞。

“我建议在主题本身内编写代码,因为我过去看到的是插件,它们做任何更新的工作非常少。 而且随着技术的发展,这些插件可能不会。 这些插件引入漏洞的可能性可能高于我们的预期。”

— Ayush Malakar,新鲜咨询

与往常一样,保持代码更新很重要。 注意核心和插件更新,并使 WordPress、插件和主题保持最新。

安全和 WordPress 端点

XML-RPC 和 REST API 是 WordPress 用来与其他系统或应用程序前端通信的端点。 了解这些端点以及它们是否对您的应用程序很重要很重要,因为它们是潜在的攻击媒介,如果不需要,可以禁用。

XML-RPC 作为潜在的攻击媒介

XML-RPC 是一种能够在 WordPress 和其他系统之间进行通信的规范。 在 WordPress 的早期版本中,XML-RPC 默认是关闭的。 但是从 3.5 版开始,它默认是启用的。 这样做的主要原因是允许 WordPress 移动应用程序与您的 WordPress 安装进行对话。

REST API 作为潜在的攻击媒介

确保在使用 WordPress REST API 时使用最佳安全实践。 虽然企业可能需要保持开放,例如在内容需要流向解耦前端的无头架构中,但要确保那些仍然暴露在外的部分具有适当的身份验证和授权。

“您拥有这座城堡、WordPress、您的应用程序,而吊桥的存在并不能本质上使您的应用程序安全。 但它是一个途径。 这是进入那座城堡的一条路。 因此,对这些事情有一个很好的理解、了解和核算对于在应用程序安全性方面有一个更好的姿态绝对是至关重要的。”

— Sean O'Shaughnessy,WordPress VIP

我的主机安全吗?

在确定您的主机是否足够安全以满足您的需求时,需要考虑很多因素。 考虑所有可用的安全选项是一个好主意,并且不要忘记在紧急情况下快速支持的重要性 - 例如导致安全事件的插件更新。

“您的托管服务提供商是否提供快速和主动的支持? 此外,当应用程序或插件漏洞被发布时,他们如何响应?”

— Sean O'Shaughnessy,WordPress VIP

总体而言,寻找一个考虑托管共同责任的平台。 需要考虑的一些功能包括:

文件系统权限

一些主机提供只读文件系统,而不是能够写入文件。 这可以防止 Web 进程用户能够在任何地方写入文件,从而关闭潜在的攻击媒介。

容器化

寻找一个将您网站的资源与其他客户的网站隔离开来的主机。 虽然这不是一个全面的安全措施,但容器化确实提供了一个基本的安全措施。 作为奖励,它还允许用于水平甚至垂直可扩展性的专用资源。

版本控制

当 WordPress 托管平台阻止 SFTP 并允许通过版本控制系统进行代码更新时,它们会减少应用程序的攻击面。 此外,通过版本控制管理应用程序源代码提供了代码的“原始”副本作为事实来源,以及该代码的完整、可审计、丰富的上下文历史。

我的公司如何实施 WordPress 安全性?

安全性不仅仅是代码或主机级别的考虑。 还有人为因素,公司可以建立定期安全检查和密码卫生规则等流程,这将大大提高您网站的安全性。

“在组织层面,重要的是要考虑实施多层持续身份验证或验证。”

— Sean O'Shaughnessy,WordPress VIP

零信任和最小权限访问管理

通过仔细考虑角色和访问管理,组织可以使人们以尽可能少的特权(因此风险最小)来完成他们的工作。 确保正确定义和分配用户的角色和能力。 此功能是 WordPress 开箱即用的,并且可以针对任何用例进行扩展。

密码卫生

用户应该为每个应用程序创建唯一且难以猜测的密码。 肖恩特别喜欢这部漫画,它提倡使用随机单词的集合,而不是字母、数字和符号的组合:

XKCD漫画

2FA 和 SSO

虽然双因素身份验证 (2FA) 和单点登录 (SSO) 技术不会从本质上提高您网站的安全性,但它们确实提供了跨所有受支持应用程序的集中用户管理的好处。

关键的 WordPress 安全要点

  • 开源具有安全优势
  • 保持 WordPress 和插件更新
  • 使用版本控制
  • 了解 WordPress 端点
  • 寻找考虑安全性的主机
  • 在组织层面采用成熟的安全实践

在长达一小时的网络研讨会中,我们介绍了更多关于 WordPress 安全性的内容。 如果你错过了现场直播,我鼓励你在这里查看录音。