如何禁用 WordPress REST API 的 Users 路由以屏蔽网站用户名信息

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 路由如下:

将上面特定的 REST API 路由添加到 xxx.com/wp-json 这个 URL末尾,然后在浏览器地址栏中输入访问即可获取 WordPress 网站对应的公共数据信息,如果是公共 Endpoints,则发送请求访问时不需要进行身份验证,直接可获取对应的网站公共数据,但如果是网站私有数据那么就需要进行身份验证后才可以访问。

例如,通过上面 REST API 的 Users 路由便可以访问获取 WordPress 网站的用户数据信息,具体来说:

获取网站所有用户信息:xxx.com/wp-json/wp/v2/users

获取网站指定 ID 的用户信息(如适用):xxx.com/wp-json/wp/v2/users/5

可以看到,默认情况下,通过 Users 路由能够直接获取 WordPress 网站的所有用户信息(用户名/邮箱),一定程度上这会增加网站遭受暴力攻击的风险,所以有必要将其禁用掉,

WordPress 安全插件 Wordfence 的一个功能便是可以防止通过 “/?author=N” 扫描、oEmbed API、WordPress REST API 和 WordPress XML 站点地图来发现网站用户名信息,勾选启用后即可禁用 REST API 的 Users 路由以防止未授权的请求获取网站的用户名信息。

或者也可以直接通过添加代码的方式来限制对 REST API 的访问,

在主题的 functions.php 文件末尾添加代码,然后点击 Update File 保存更改,

但需要注意的是,完全禁用 REST API 可能会使得某些插件和主题功能受到影响,无法正常使用。

未经允许不得转载:Onexiaobai » 如何禁用 WordPress REST API 的 Users 路由以屏蔽网站用户名信息

赞 (0)
点击从 NameSilo 购买域名

点击从 NameSilo 购买域名

评论

1+7=
error: