当前位置:首页>WordPress专区>WordPress教程>WordPress REST API 应不应该禁用?

WordPress REST API 应不应该禁用?

有很多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
    }
}
免责声明 1:本站的课程与素材,都是电子版课件,非实物光盘,课件由百度网盘发送.(百度网盘下载教程)2:本站所有涉及视频及素材,软件等由互联网搜索收集而来,本站不拥有此类资料的版权。3:本站所有视频,素材及软件不加密、不限时、可永久观看或使用!禁止二次销售,否则因此引起的一切问题与本站无关。4:本站所有的资源均为免费提供,提供资料的目的是让大家学习和交流,所收取的相关费用非资料销售费用,而是资料收集整理手工费。5:无意侵害您的权益,请发送邮件至 590173@qq.com 或点击左侧 私信:站长反馈,我们将尽快处理。

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

WordPress 禁用自动保存、修订版本的具体方法

2023-6-29 23:30:46

WordPress教程

WordPress删除文章修订版本和自动草稿残留数据

2023-7-9 7:48:48

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索