WordPress安全地禁用REST API,删除默认的REST API路由,或修改REST API路由

为什么要删除/禁用/修改REST API或路由?

  • 保持干净,因为没有使用REST API - 为什么要使用API​​路由?
  • 禁用默认路由的原因。我们大量使用自定义REST API。因此,保持简约清洁是件好事。它也不会伤害安全性,因为我们将更少的泄露数据。
  • 删除或修改REST API路由不会对98%的WP站点产生任何影响。“为什么?” - 因为他们根本不使用REST API。但是,如果你的确有,请确保你测试连接的应用程序。
  • 为了接口安全,也是为了资源严谨,如果你使用WordPress默认的路由地址,那么任何人都可轻易取到你的所有数据。
WordPress安全地禁用REST API,删除默认的REST API路由,或修改REST API路由
禁用REST API/删除REST API/自定义禁用REST API

显示默认的REST API信息

禁用REST API

您可以通过向rest_authentication_errors过滤器添加is_user_logged_in检查来要求对所有REST API请求进行身份验证:

在为localhost以外的请求禁用REST API

删除REST API

返回一个空数组,所有路由都消失了。

如果你自定了API路由,那上面的操作过于果断,我们要处理一下,把你的自定义路由保留下来:

只需使用自定义前缀跳过并将其保留在数组中。别忘了返回数组。

自定义REST API URL前缀

自定义路由

使用上面的过滤器,您的路由将是mysite.com/api/,打开旧的mysite.com/wp-json/ URL将产生404错误。

确保在自定义路由路径中包含版本号,因为WP不会自动添加前缀。版本号前缀可确保在未来发生变化时不会破坏使用旧路径的客户端。只需在调用register_rest_route()时包含版本前缀,以获得类似mysite.com/api/v1/的内容,并将所有路由路径保留在“v1”之后,以便后续可以使用“v2”等。