如何禁用WordPress的REST API
WordPress Python 等编程语言与 WordPress 进行远程通信。此外,许多插件和工具(如 WP-CLI)也依赖 REST API 来实现远程管理功能。然而,如果配置不当,REST API 可能会带来安全隐患。在本文中,我们将探讨禁用 WordPress REST API 的原因以及如何通过插件或代码来实现禁用,以提高网站的安全性。
为什么要禁用 WordPress 的 REST API?
WordPress 的 REST API 对于程序员和某些管理工具来说非常有用,它可以通过 JSON 格式的 Web 请求提供信息,从而帮助开发者更好地理解和操作程序。测试 REST API 的方法也非常简单,只需在浏览器地址栏中添加 /wp-json 到您的域名即可。例如:

如上图所示,REST API 会显示许多信息。然而,这些信息可能被任何人轻松获取,甚至包括恶意用户。例如,通过在域名后添加 /wp-json/wp/v2/users,可以获取网站用户的列表。此外,攻击者还可能通过多次调用该 API 发起拒绝服务(DoS)攻击。
因此,如果您并未使用 REST API,建议禁用它以提升网站的安全性。
方法一:通过插件禁用 REST API(简单方法)
最简单的禁用方法是使用 Disable REST API 插件。以下是具体步骤:
-
安装并激活 Disable REST API 插件。如果您不熟悉插件的安装过程,可以参考相关教程视频。

-
插件无需额外配置,激活后会自动拒绝对 REST API 的请求。但登录用户或管理员的请求仍然会被允许。
-
验证插件是否生效:关闭 WordPress 会话,然后访问之前提到的 API 地址。如果插件正常工作,您将看到一条未经授权的提示信息,如下图所示:

注意事项
请注意,某些插件(如 Contact Form)可能依赖 REST API 才能正常运行。在禁用 API 后,请务必检查网站的功能是否受到影响。
方法二:通过代码禁用 REST API(高级方法)
如果您是一名开发者或熟悉 WordPress 主题的设计师,可以通过代码禁用 REST API。以下是具体步骤:
-
确保您的网站正在使用 子主题,以避免直接修改主主题文件导致更新时丢失更改。
-
将以下代码添加到子主题的
functions.php文件中:// 禁用 REST API 的匿名访问 add_filter('rest_authentication_errors', function ($result) { if (!is_user_logged_in()) { return new WP_Error('rest_forbidden', __('您无权访问此 API。'), array('status' => 401)); } return $result; }); -
保存文件后,任何匿名请求都会被阻止,而已登录用户或经过身份验证的插件仍然可以正常使用 REST API。
总结
WordPress REST API 是一个强大的工具,但如果您不需要使用它,禁用 API 是提升网站安全性的有效措施。对于普通用户,推荐使用插件来实现禁用;而对于开发者,可以通过代码实现更灵活的控制。在禁用 API 后,请务必检查网站的功能是否受到影响,以确保正常运行。
原文链接: https://superadmin.es/blog/wordpress/deshabilitar-json-rest-api/
最新文章
- 交叉熵的Numpy实现:从理论到实践
- Google DeepMind发布 Genie 3与Shopify:2小时上线电商3D样板间实战
- Gemini Deep Research 技术实战:利用 Gemini Advanced API 构建自动化的深度研究 Agent
- FLUX.1 Kontext API 使用完全指南:解锁文本驱动的智能图像编辑
- 如何防范User-Agent信息伪装引发的API访问风险
- 苹果支付流程:从零开始的接入指南
- 全面掌握 OpenAPI 规范:定义、生成与集成指南
- 深入解析granularity是什么?颗粒度中文详解
- 微服务架构中的API网关简介 – IMESH
- REST API命名规范的终极指南:清晰度和一致性的最佳实践
- Go:基于 MongoDB 构建 REST API — Fiber 版
- Agrio 农业智能警报:如何让作物健康管理更上一层楼?