[不花钱站长]:从免费域名开始[0元] Oracle永久免费VPS[0元] VPS环境搭建免费脚本[0元] 秒变大盘挂载免费网盘[0元] 小白免费采集器1天500W[0元] CF免费DNS+CDN服务[0元]
[零基础网赚]:撸本站免费源码[0元] 网站强引免费蜘蛛法[0元] 图片视频文件免费存储[0元] 外链轻松发布免费友链[0元] 入坑免费教程学习源代码[0元] 网上百种+赚钱联盟推荐[?元]

↑↑主机测评网牛逼个人站长零成本从白嫖到精通指南↑↑


您现在的位置是:首页 > 全球[VPS测评] >  REST API,WordPress,WordPress主题,WordPress代码,WordPress插件,WordPress,国外永久免费VPS

WordPress如何代码实现完全禁用REST API

全球[VPS测评]来源:主机测评网2023-01-29点击:616
【性价之王】【线路之王】【价格之王】【配置之王】
【免费之王】【香港首推】【梯子之王】【独服之王】
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]历史优惠活动内容
  • WordPress如何代码实现完全禁用REST API2023-1-29
  • WordPress如何代码实现完全禁用REST API2023-1-29
  • WordPress如何代码实现完全禁用REST API2023-1-29
  • WordPress如何代码实现完全禁用REST API2023-1-29
  • WordPress如何代码实现完全禁用REST API2023-1-29
  • WordPress如何代码实现完全禁用REST API2023-1-28
  • WordPress如何代码实现完全禁用REST API2023-1-28
  • WordPress如何代码实现完全禁用REST API2023-1-28
  • WordPress如何代码实现完全禁用REST API2023-1-28
  • WordPress如何代码实现完全禁用REST API2023-1-28
  • WordPress如何代码实现完全禁用REST API2023-1-28
  • WordPress如何代码实现完全禁用REST API2023-1-28
  • WordPress如何代码实现完全禁用REST API2023-1-28
  • WordPress如何代码实现完全禁用REST API2023-1-28
  • WordPress如何代码实现完全禁用REST API2023-1-27
  • 禁止WordPress程序REST API功能且移除wp-json链接2022-12-29
  • 禁止WordPress程序REST API功能且移除wp→json链接2022-12-25

  • 猜你可能想看的VPS


    转载请注明原文地址:http://www.motoll.com/read-226467.html

    使用该VPS服务器的演示站:

    下一篇       上一篇