WordPress REST API 是界面,前身是 WordPress 插件,从 WordPress 4.7 版本已经集成 WordPress 通过程序核心和默认启用,通过 REST API 任何人都可以访问特定的路由 WordPress 网站的一些公共数据信息。
据 WordPress 介绍,REST API 使用 JSON 作为一种请求和响应格式,只有在身份验证后,才能为任何客户匿名访问网站提供公共数据和私人数据。REST API 在你的网站上创建一个可用的交互式接口 Web 任何其他第三方网站或移动应用程序都可以通过发送特定的服务 GET 请访问网站 WordPress 数据库并检索网站的一些公共数据信息,包括用户、类别、评论、文章、页面、标签等 JSON 格式返回输出。
REST API 默认启用,可在浏览器地址栏输入 xxx.com/wp-json 然后返回汽车。如果有数据返回,则表示目前 WordPress 网站的 REST API 它是开放的,可以直接访问网站 JSON 数据。
WordPress 提供的 REST API 参考 Endpoints 路由如下:
图源:WordPress 官网截图
以上是特定的 REST API 路由添加到 xxx.com/wp-json 这个 URL的末尾,然后在浏览器地址栏中输入访问 WordPress 如果网站对应的公共数据信息是公共数据信息 Endpoints,发送请求访问时不需要身份验证,可以直接获取相应的网站公共数据,但是,如果是网站的私有数据,则需要进行身份验证才能访问。
例如,通过上面 REST API 的 Users 可以访问路由获取 WordPress 具体来说,网站的用户数据信息:
获取网站上所有用户信息:xxx.com/wp-json/wp/v2/users
图源:JSON Viewer 插件截图
获取网站指定 ID 用户信息(如适用):xxx.com/wp-json/wp/v2/users/5
图源:JSON Viewer 插件截图
可以看出,在默认情况下,通过 Users 可直接获取路由 WordPress 网站的所有用户信息(用户名/邮箱)都会在一定程度上增加网站遭受暴力攻击的风险,因此有必要禁用,
图源:WordPress 后台截图
WordPress 安全插件 Wordfence 一个功能是防止它通过 “/?author=N” 扫描、oEmbed API、WordPress REST API 和 WordPress XML 网站地图找到网站用户名信息,检查启用后禁止使用 REST API 的 Users 路由防止未经授权的请求获取网站的用户名信息。
图源:JSON Viewer 插件截图
或者可以通过添加代码直接限制 REST API 的访问,
图源:WordPress 后台截图
在主题的 functions.php 在文件末尾添加代码,然后单击 Update File 保存更改,
图源:WordPress 后台截图
但需要注意的是,完全禁止使用 REST API 一些插件和主题功能可能会受到影响,无法正常使用。