当前位置:首页技术教程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
    }
}
温馨提示:

文章标题:WordPress REST API 应不应该禁用?

文章链接:https://www.xiciw.com/jsjc/2215.html

更新时间:2024年03月10日

本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:xiciw#qq.com我们将第一时间处理!

资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。

                               

所有资源仅限于参考和学习,版权归原作者所有,更多请阅读菜鸟资源服务协议

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

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

WP Smush Pro 插件使用教程 – 图片压缩与WebP转换

2024-3-10 16:50:06

技术教程

WordPress速度优化最后一招,用Opcache实现前后端全站加速

2024-3-10 16:54:41

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索