本文介绍如何禁用WP REST API。
什么是REST API?
WordPress REST API 提供代表帖子、页面、分类法和其他内置 WordPress 数据类型的 REST 端点 (URL)。您的应用程序可以向这些端点发送和接收 JSON 数据,以查询、修改和创建您网站上的内容。JSON 是一种开放标准数据格式,轻量级且易于阅读,看起来像 JavaScript 中的对象。当您从 API 请求内容或向 API 发送内容时,响应也将以 JSON 格式返回。
为什么要禁用REST API?
- 非登录用户可能不需要REST API
- 禁用REST API可节省服务器资源
- 禁用REST API可以最大限度地减少潜在的攻击媒介
- 禁用REST API可防止内容抓取和抄袭
如何禁用WP REST API?
你可以通过添加Function代码禁用
将一下代码添加到网站的Function.php文件中,以下代码片段将通过在遇到身份验证过程时返回 WP_Error 实例来禁用 WordPress REST API。
<?php
add_filter( 'rest_authentication_errors', 'wp_snippet_disable_rest_api' );
function wp_snippet_disable_rest_api( $access ) {
return new WP_Error( 'rest_disabled', __('The WordPress REST API has been disabled.'), array( 'status' => rest_authorization_required_code()));
}
?>
通过插件禁用
插件名称:Disable REST API(免费)
插件名称:Perfmatter(一款WordPress脚本优化插件,付费)
我自己使用的就是这款插件。
如何验证已经禁用WP REST API?
访问https://yourdomian.com/wp-json/
出现如下内容,则代表禁用成功。
{"code":"rest_authentication_error","message":"\u5f88\u62b1\u6b49\uff0c\u60a8\u6ca1\u6709\u53d1\u51fa REST API \u8bf7\u6c42\u7684\u6743\u9650\u3002","data":{"status":401}}