#精品
WordPress REST API 应不应该禁用?

2025-01-12 0 723

有很多WordPress初学者,查了一些教程,觉得 WordPress REST API 应该禁用。也有人不敢随便禁止它,担心会产生不良后果。本文将介绍一下WordPress REST API究竟是干嘛的,应不应该禁用它,或者什么情况下可以禁用。

WordPress REST API 有什么作用?

API 是应用程序编程接口。REST,代表“REpresentational State Transfer”,是一组概念,用于将应用程序的数据建模和访问为相互关联的对象和集合。WordPress REST API 提供代表帖子、页面、分类法和其他内置 WordPress 数据类型的 REST 端点 (URL)。

WordPress REST API 为应用程序提供了一个接口,通过发送和接收JSON(JavaScript 对象表示法)对象形式的数据来与您的 WordPress 站点进行交互。

它是WordPress Block Editor的基础,同样可以使您的主题、插件或自定义应用程序提供新的、强大的界面来管理和发布您的网站内容。

通俗一些的讲,它就是一个接口

如WordPress默认的块编辑器,就会用到它,它是WordPress Block Editor的基础。如果这个接口被关闭或出现故障,就会出错。

还有一些基于WordPress开发插件,或基于WP的APP、小程序等,也会通过REST API与WordPress进行通信。

结论就是 WordPress REST API 并不是一个无用的功能。

到底需不需要禁用REST API?

虽然 WordPress REST API 很棒,但由于它是一个接口,并且通过URL可以进行调用。我们可以在自己的网站上试试:https://www.yousite.com/wp-json/ 这个Url,看看会返回什么。

如果访问https://www.yousite.com/wp-json/wp/v2/users,则会返回网站所有注册用户的用户名、ID、描述、头像等信息,返回如下示例:

[
    {
        \"id\": 1,
        \"name\": \"admin\",
        \"url\": \"https://test.zhanzhangb.com\",
        \"description\": \"\",
        \"link\": \"https://test.zhanzhangb.com/author/test/\",
        \"slug\": \"test\",
        \"meta\": [],
        \"_links\": {
            \"self\": [
                {
                    \"href\": \"https://test.zhanzhangb.com/wp-json/wp/v2/users/1\"
                }
            ],
            \"collection\": [
                {
                    \"href\": \"https://test.zhanzhangb.com/wp-json/wp/v2/users\"
                }
            ]
        }
    }
]

得到这些信息后,恶意攻击者可以开始猜测 WordPress 网站上所有用户名的密码(暴力攻击)。

默认状态下,如不禁用REST API会有以下风险

  • 会透露WordPress站点的很多敏感信息,不利于安全。
  • 当该URL有访问,会运行WordPress的大量程序脚本。如有人不断高频率扫描该URL,甚至会导致网站运行缓慢或卡死。
最佳的处理方法是默认禁用,但对相应用户或插件应用开放其访问权限。

如何正确禁用REST API,以及哪些情况需要开放权限?

常见需要使用REST API的应用是以下这些:

  • Gutenberg 块编辑器使用 REST API在页面编辑和发布编辑时进行通信。如果完全禁用它,会得到一个错误:“更新失败。”
  • Yoast SEO 和 Ryte 仪表板小部件。
  • Jetpack
  • Wordfence
  • JetMenu
  • Customer Reviews for WooCommerce
  • 各种 WooCommerce 仪表板小部件。

如果以上插件与功能均仅网站管理员才有权限可使用的话,那么可以将REST API的非管理员权限禁用。

推荐使用Perfmatters插件对REST API进行安全操作,具体方式如下图:

WordPress REST API 应不应该禁用?
使用 Perfmatters 禁用 WordPress REST API

如果要针对某插件或应用程序的API排除禁用,则可以在functions.php文件中,或使用代码片段插件(推荐)插入以下代码:

add_filter(\'perfmatters_rest_api_exceptions\', function($exceptions) {
  $exceptions[] = \'需要排除的api\';
  return $exceptions;
});

验证效果

当在未登录状态下,再次访问https://www.yousite.com/wp-json/https://www.yousite.com/wp-json/wp/v2/users,如设置正确将得到以下提示并返回401状态码:

{
    \"code\": \"rest_authentication_error\",
    \"message\": \"很抱歉,您没有发出 REST API 请求的权限。\",
    \"data\": {
        \"status\": 401
    }
}
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在!
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。联系邮箱:3496947425@qq.com

813站长大咖 精品文章 WordPress REST API 应不应该禁用? https://www.813master.cn/1506.html

WordPress极客一枚!无干货,不分享!

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务