菜鸟资源网站全面焕新升级啦!全新的界面设计,简洁而不失雅致,让您一目了然,轻松上手。我们还对资源分类进行了细致梳理,确保各类资源条理清晰,便于您按需筛选与查找。 立即查看
通知图标

正在访问 WordPress REST API 应不应该禁用?

WordPress REST API 应不应该禁用?

WordPress REST API 应不应该禁用?

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

常见问题

  • 如何安装和激活?

    每款软件会附带有安装教程,您打开安装包一目了然

  • 程序是否已损坏?文件损坏?还是其他错误?

    有错误问题,请您参考:https://www.xxx.com/error

  • 如何更新?正式激活后会发生什么情况?

    除非安装说明中另有说明,否则官方更新可能会导致无法激活。 要从本网站更新软件,您需要在此处下载此软件的新版本(如果可用),并将其安装在计算机上安装的版本之上(替换)。在这种情况下,您将保存此软件的激活和设置。

  • 如何下载?链接不起作用?

    我们使用百度网盘,132云盘和微软网盘,除了百度网盘,其他两款不限速,如果链接失效,请您联系客服处理

  • 已发布更新。我什么时候升级我的版本?

    所有软件如有更新,我们第一时间推送,视自己情况更新使用

  • 如何更改语言?

    打开“系统偏好设置”->“通用>语言和地区”->应用程序-“+”。 选择应用和语言。此方法适用于大多数应用程序。 Adobe 产品中的语言通常是在产品本身的安装阶段选择的。 游戏中的语言通常会在游戏本身的设置中发生变化。

  • 如何删除软件?

    有很多选择。最简单的方法是使用特殊的实用程序来卸载应用程序,例如App Cleaner Uninstaller 要删除 Adobe 产品,请使用 Creative Cloud Cleaner Tool

  • 需要远程帮助吗?

    网站已开通永久会员的可享受免费远程,如果非永久会员,远程安装另外收费

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

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

2024-3-10 16:50:06

技术教程

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

2024-3-10 16:54:41

后退
榜单