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
- 极光KVM:月末冲刺活动,美西/香港cn2云服务器,低至19元/月起 香港VPS[主机]
- HTML5绿色有机食品电商网站模板 - Organtio 全球[VPS测评]
- 香港云服务器对于建站有什么便捷的地方? 香港VPS[主机]
- 人们为啥不爱吃海底捞了?海底捞上半年亏损达2.97亿 网友神评扎心 全球[VPS测评]
- 云计算的三种服务模式,SaaS和PaaS的区别在哪里? 全球[VPS测评]
- 精编案例丨游戏行业转型升级迫在眉睫,云计算助力打造下一代游戏体验 全球[VPS测评]
- CMCUCT:2核2GB/20GB香港ntt线路vps 6TB流量/1G 香港VPS[主机]
- 源云主机,香港沙田VPS CN2 1核1G 24/月 NTT 50M 9 香港VPS[主机]
- 磐逸云怎么样?1核1G香港安畅CN2 VPS带宽5M年付128元 香港VPS[主机]
- UOVZ怎么样?香港30M大带宽VPS 直连线路月付50元 香港VPS[主机]
- 傲闪云vps,1核1G低至10元起,国内高防/香港CN2/美国CN2/美 美国VPS[主机]
- tudcloud:香港vps终身7折,香港服务器终身9折,移动访问尤其优 香港VPS[主机]
- 美云香港云服务器怎么样?1核1G香港云服务器价格99元/月 香港VPS[主机]
- OneTechCloud易科云双十二优惠:香港/美国CN2全场VPS季付 美国VPS[主机]
- 极光KVM:新上香港CN2VPS,终身6折优惠,1核/1G/5Mbps, 香港VPS[主机]
- 云米科技:美国CERA三网回程GIA 10Mbps大带宽,年付最低400 美国VPS[主机]
- 众创逸云:元旦优惠活动,香港美国CN2云服务器4核4G30M,仅售309 美国VPS[主机]
- TmhHost:美国洛杉矶CN2 GIA高防vps/日本/香港BGP等K 日本VPS[主机]
- 酷锐云:香港安畅机房4H/4G/60G/20Mbps,45元/月;香港C 香港VPS[主机]
- 六一云:春季大欢庆八折,香港CN2/美国高防/美国Cera,CDN产品, 美国VPS[主机]
- 野草云:香港CN2VPS年付36折,137元/年;独立服务器350元月起 独立服务器[U]
- 速云互联:香港GT大带宽vps/香港CN2云服务器/洛杉矶200G高防v 香港VPS[主机]
- 啤啤云:美国圣何塞vps低至30元/月;香港cn2vps仅43元/月起 美国VPS[主机]
- 月神科技:香港安畅/沙田机房VPS,2核2G10M带宽仅20元/月 香港VPS[主机]
- 拼多多回应筹备跨境电商业务:不予置评 全球[VPS测评]
- kvmcloud怎么样?香港BGP云服务器 月付12.9元 香港VPS[主机]
- HostKVM香港云地VPS,2核4G内存折后$8.4/月,30M大带宽 香港VPS[主机]
- 者也IO,香港日本美国云服务器促销,2核2G1000元/2年,7折+内存 日本VPS[主机]
- tudcloud:全场7折,香港不限流量VPS,Windows系统,Li WINDOWS
- 轻云互联,香港美国vps终身8.8折17元/月起,cn2直连线路,50G 美国VPS[主机]
转载请注明原文地址: http://140.238.13.167:12355/read-224431.html











