是否应禁用WordPress REST API?- PixemWeb

作者:API传播员 · 2026-01-03 · 阅读时间:5分钟
WordPress REST API 提供强大功能,但存在匿名访问和用户枚举等安全风险。WordFence 和 iThemes 等安全公司建议通过插件或手动方法禁用或限制访问,以平衡功能与安全。文章探讨是否应禁用 WordPress REST API 及其安全解决方案。

WordPress REST API 的概述

WordPress REST API 是一个已经开发多年的功能,由一群才华横溢的开发者精心打造,旨在为 WordPress 用户和开发者提供更多功能。它的引入为 WordPress 增添了许多强大的功能,使其继续稳居开源内容管理系统(CMS)的顶端,广泛应用于财富500强企业和普通博主。

如果您想深入了解 REST API 的工作原理及其使用方法,建议访问其官方网站:WordPress REST API 官方网站


REST API 的安全性问题

近期,关于 WordPress REST API 的安全性问题引起了广泛关注。WordFence 和 iThemes 等知名安全公司对 WordPress 4.7 版本中 REST API 的深度集成进行了详细分析,并提出了一些建议。以下是他们的主要观点和解决方案。


WordFence 对 REST API 的分析

WordFence 在其文章中详细讨论了 REST API 为 WordPress 带来的新功能,以及开发者如何在开发过程中利用这些功能。然而,他们也指出了 REST API 存在的潜在安全隐患。

REST API 的安全隐患

REST API 允许匿名访问,这意味着任何人都可以列出网站的所有用户。这可能会被黑客利用,成为一种新的攻击向量。例如,僵尸网络可以通过用户枚举功能尝试暴力破解用户凭据。

WordFence 的解决方案

为应对上述问题,WordFence 更新了其安全插件,新增了防止用户枚举的功能。以下是启用该功能的步骤:

  1. 在 WordPress 管理面板中,导航到侧边栏的 WordFence 链接。
  2. 点击“选项”子菜单。
  3. 向下滚动到底部,找到“登录安全选项”。
  4. 勾选“通过‘/?author=N’扫描防止发现用户名,检查 oEmbed API 和 WordPress REST API”选项。

通过此设置,您可以有效防止 REST API 被用于用户枚举攻击。

原文链接:WordFence 官方博客


iThemes 对 REST API 的看法

iThemes 是 WordPress 生态中知名的主题和插件提供商。他们也对 REST API 的某些安全问题表示担忧,并提出了相应的解决方案。

REST API 的潜在问题

  1. REST API 的身份验证可能绕过其他安全功能,例如双因素身份验证(Two-Factor Authentication)和 reCAPTCHA。这就像家门上装了多把锁,但窗户却敞开着。
  2. REST API 允许在未进行身份验证的情况下访问某些信息,这进一步增加了安全风险。

iThemes 的解决方案

iThemes 提供了禁用 REST API 的选项,具体操作步骤如下:

  1. 从 WordPress 管理仪表板访问 iThemes 安全设置页面。
  2. 向下滚动到“WordPress 调整”部分。
  3. 点击“配置设置”。
  4. 在 REST API 部分,选择“完全禁用 REST API”或“仅管理员权限访问”,也可以保持默认启用状态。

禁用 REST API 可以确保 API 不会绕过网站的身份验证措施,而启用 REST API 则保留其所有功能,但需承担一定的安全风险。

原文链接:iThemes 官方博客


使用插件禁用 REST API

如果您希望通过插件禁用 REST API,可以尝试使用 Disable JSON API 插件。该插件可以快速禁用 REST API 功能,无需手动修改代码。


手动禁用 REST API 的方法

如果您不使用任何安全插件,也可以通过手动方式禁用 REST API。以下代码片段可以添加到主题的 functions.php 文件中,或者使用类似 Code Snippets 的插件来实现:

add_filter('rest_enabled', '__return_false');
add_filter('rest_jsonp_enabled', '__return_false');
remove_action('xmlrpc_rsd_apis', 'rest_output_rsd');
remove_action('wp_head', 'rest_output_link_wp_head', 10);
remove_action('template_redirect', 'rest_output_link_header', 11);

这种方法适合那些希望完全掌控网站安全设置的用户。


是否应该禁用 REST API?

是否禁用 REST API 取决于您的实际需求。如果您的网站使用了依赖 REST API 的插件或功能,则建议保持启用状态。但如果您没有使用相关功能,为了安全起见,可以考虑禁用 REST API。

您可以参考 使用 REST API 的插件列表 来判断是否需要启用该功能。


总结

在功能与安全之间找到平衡始终是一个挑战。建议您根据网站的实际需求,评估是否需要启用 REST API。同时,定期进行安全审计,确保网站不存在其他安全漏洞。

感谢您的阅读,希望本文对您有所帮助!

原文链接: https://www.pixemweb.com/blog/should-you-disable-the-wordpress-rest-api/