WordPress如何代码实现完全禁用REST API
![]() | ![]() | ![]() | ![]() |
| 【性价之王】 | 【线路之王】 | 【价格之王】 | 【配置之王】 |
| 【免费之王】 | 【香港首推】 | 【梯子之王】 | 【独服之王】 |

WordPress程序开发应用十分之广泛。个人博客、企业站,电商网站甚至小程序开发都可以使用到WordPress程序。WordPress 官方的功能更新也非常积极主动。
WordPress 从 4.4 版本开始新增了JSON REST API 功能。这个是非常棒的功能通过REST API可以很方便地获取网站数据,可应用于其他网站、手机 APP 或小程序开发等,在开发过程中极大地方便了开发者。
[ad]
如果博客没有任何APP和小程序功能,那么你可以选择屏蔽 WordPress REST API 功能。 JSON REST API 功能对于绝大部分的WordPress网站是没有必要启用的,启用JSON REST API 反而会影响网站的运行效率。
而且REST API 采用 GET 请求方式,非常容易遭到DDOS 攻击,所以尽可能禁止启用REST API ,同时需要去掉 head 里面输出 WP-JSON链接。
如何查看 WP JSON REST API 是否开启。
在浏览器访问https://zhuji.gd/wp-json/,若输出数据,则WP JSON REST API是开启状态。
网上的教程只适合 WordPress 4.7 以前的版本。
在 WordPress 4.7 版本之前可以通过在functions.php 文件中添加入以下代码屏蔽 REST API:
// 屏蔽 REST APIadd_filter('rest_enabled', '__return_false');add_filter('rest_jsonp_enabled', '__return_false');// 移除头部 wp-json 标签和 HTTP header 中的 linkremove_action('wp_head', 'rest_output_link_wp_head', 10 );remove_action('template_redirect', 'rest_output_link_header', 11 );但自 4.7.0 版起,官方已不建议使用 rest_enabled,需要换用 rest_authentication_errors。 REST API 不再能被完全禁用,不过可以用“rest_authentication_errors”过滤器来限制对该 API 的访问。
因此如果我们想兼容各个版本WordPress,可以直接使用插件Disable REST API、Disable WP REST API还有我爱水煮鱼的WPJAM BASIC插件来完全禁用 REST API。
另外需要注意的是,屏蔽 REST API 会直接导致文章Emebed功能失效。
那么有没有不需要通过安装插件就可以代码实现完全禁用 REST API 或者说移除 head 里面 wp-json 链接的方法?
龙笑天博客的Dragon主题就集成了这个代码。下面代码来自龙笑天博客。
将以下代码添加到functions.php 中,即可禁用 JSON REST API :
// 屏蔽 REST APIif ( version_compare( get_bloginfo( 'version' ), '4.7', '>=' ) ) { function lxtx_disable_rest_api( $access ) { return new WP_Error( 'rest_api_cannot_acess', '无访问权限', array( 'status' => rest_authorization_required_code() ) ); } add_filter( 'rest_authentication_errors', 'lxtx_disable_rest_api' );} else { // Filters for WP-API version 1.x add_filter( 'json_enabled', '__return_false' ); add_filter( 'json_jsonp_enabled', '__return_false' ); // Filters for WP-API version 2.x add_filter( 'rest_enabled', '__return_false' ); add_filter( 'rest_jsonp_enabled', '__return_false' );}// 移除头部 wp-json 标签和 HTTP header 中的 linkremove_action('template_redirect', 'rest_output_link_header', 11 );remove_action('wp_head', 'rest_output_link_wp_head', 10 );remove_action('xmlrpc_rsd_apis', 'rest_output_rsd');;这样在访问WP-JSON的链接时就会提示无权限。
此外,对于 WP 4.7 以上版本,还可以通过rest_api_init这个钩子来禁用 REST API 的方法,也可以尝试并改造下。
add_filter( 'rest_api_init', 'lxtx_rest_only_for_authorized_users', 99 );function lxtx_rest_only_for_authorized_users($wp_rest_server){ if ( !is_user_logged_in() ) { wp_die('非法操作!'); }}相关参考:
我爱水煮鱼
龙笑天博客
[REST API]历史优惠活动内容
猜你可能想看的VPS
- 疯狂猜成语 图猜成语一个胖子在吃言是什么成语?全球[VPS测评]
- 稳定便宜 腾讯云→99 元 年的套餐又开始秒杀了 国内起步做站必选套餐全球[VPS测评]
- HKServerSolution→359 元 季-2GB 15G SSD全球[VPS测评]
- SpinVPS→$5.99 月 1GB 内存 20GB SSD 空间 2虚拟空间(主机)
- 号外 Virmach 洛杉矶机房 107.175.x.x 段 IP 可以全球[VPS测评]
- 加速云→四川德阳高防 525 元 16 核 16g 内存 200gSSD全球[VPS测评]
- 实惠稳定 搬瓦工→新增 10Gbps 带宽的 cn2 gia 线路 VP全球[VPS测评]
- 2020 年 Vultr 最新优惠活动→新用户注册送 50 美元 做任务全球[VPS测评]
- mysql 清空表中的数据后设置自增 id 仍从 1 开始(重置自增 i全球[VPS测评]
- GigsGigsCloud 日本 cn2 gia vps 仅$7.3 起日本VPS[主机]
- 日本 VPS ¥36 月 2G 内存 40G SSD 4Mbps 不限量日本VPS[主机]
- 国人商家慎重-ManSora→港深 IPLC NAT 2 核 256M 全球[VPS测评]
- Gestion DBI→加拿大虚拟主机 2GB NVMe 空间 不限流量虚拟空间(主机)
- 八月优惠 RAKsmart→美国 CN 直连服务器降至 399 元 月 美国VPS[主机]
- Hetzner→€4.15 月 AMD EPYC 2GB 内存 40GB虚拟空间(主机)
- Time4VPS立陶宛抗诉无视版权 大硬盘存储VPS,256G硬盘,2T全球[VPS测评]
- 结合预算和需求来选择香港服务器和美国服务器美国VPS[主机]
- CloudCone 512M 内存 10G SSD 512G流量 洛杉矶全球[VPS测评]
- 拼多多入局跨境电商平台,首站美国;奈雪的茶在上海建第二总部;pidan“美国VPS[主机]
- 向日葵-漏洞科普:海外云服务器三种漏洞修复方法快收藏起来!全球[VPS测评]
- 咖啡主机:美国高防vps、香港vps 可享受6-7折促销 每月仅需14元美国VPS[主机]
- 磐逸云:全场8折优惠,1核1G香港套餐月付24元,日本NNT线路套餐,月日本VPS[主机]
- 云服务器和服务器各有什么优缺点?全球[VPS测评]
- 亿速云“双11”上云狂欢大促 高防云服务器、裸金属服务器优惠套餐全球[VPS测评]
- 香港vps免费:青云互联,1核1G/50G硬盘/500GB流量/2M带宽香港VPS[主机]
- 天生云:香港CN2VPS/2核/4G/100G硬盘/4Mbps不限流量,香港VPS[主机]
- 华纳云年终钜惠活动:云服务器半年低至280元,香港高防服务器999元香港VPS[主机]
- 跨境电商周报丨拼多多布局跨境电商平台;Shopify将推出新平台支持网红全球[VPS测评]
- 恒创科技:香港免备案CN2线路VPS/美国CN2直连VPS,月付28元起美国VPS[主机]
- 邢志宏:加快推动高质量建设跨境电商综试区起势成势全球[VPS测评]
转载请注明原文地址:http://140.238.13.167:12355/read-222997.html











