wordpress 禁止 wp-json 的方法

159次阅读
2024年05月09日 15:25:39

共计 1421 个字符,预计需要花费 4 分钟才能阅读完成。

直接将代码放置到当前主题 functions.php 文件中添加以下代码:

`//禁用 REST API、移除 wp-json
add_filter('rest_enabled', '_return_false');
add_filter('rest_jsonp_enabled', '_return_false');
remove_action( 'wp_head', 'rest_output_link_wp_head', 10 );
remove_action( 'wp_head', 'wp_oembed_add_discovery_links', 10 );
`

WordPress禁用JSON REST API输出站点信息:

WordPress 从 4.4 版本开始新增的 JSON REST API 功能,通过这个 REST API 可以很轻松的获取网站的数据,可应用于其它网站、手机 APP 或小程序等。

使用的他人的插件,反而会拖累网站的速度,而且 REST API 采用 GET 请求方式,这就为 DDOS 攻击提供了一个新的攻击途径。

所以我们应尽可能的禁止掉这些不必要的功能需求,并且去掉 head 里面输出 wp-json 链接,我之前就直接输出了,查看源代码就能直接看到。

需要简单一点的话,我们可以直接使用插件 Disable REST API 来完全禁用 REST API,但我更倾向纯代码的方法,在这里就介绍下代码版兼容所有 WordPress 版本的完全禁用 REST API 或者说移除 head 里面 wp-json 链接的方法。

直接将以下代码添加到主题的 functions.php 文件中即可禁用 JSON REST API :

// 屏蔽 REST API
if ( version_compare( get_bloginfo( 'version' ), '4.7', '>=' ) ) {
    function disable_rest_api( $access ) {
        return new WP_Error( 'rest_cannot_acess', '无访问权限', array( 'status' => 403 ) );
    }
    add_filter( 'rest_authentication_errors', '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 中的 link
remove_action('wp_head', 'rest_output_link_wp_head', 10 );
remove_action('template_redirect', 'rest_output_link_header', 11 );

当然也可以借助 Nginx 来控制 /wp-json 的访问,这里就不说了,可以通过判断请求头的 UA 信息来操作,除了 iOS 跟 Android 设备,其它访问 /wp-json 的路径均返回 403 状态码。

注意:做任何修改前记得备份源文件,最起码改错了我们还能恢复回来。

正文完
 0
鹿泽
版权声明:本站原创文章,本文由 鹿泽 于 2024年5月9日 15:25:39 发表,共计 1421 字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
本站所有文章,如无特殊说明或标注,均为本站原创发布。任何在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
如若本站内容侵犯了原著者的合法权益,可联系我们邮箱:526009505@qq.com进行处理。
最新文章
在表格中使用谷歌翻译函数公式批量翻译

在表格中使用谷歌翻译函数公式批量翻译

不用写VBA,在Excel或WPS表格中,使用谷歌翻译函数GoogleTranslate(),写写公式就可以快...
需求与满足度的相关提高权重算法原理

需求与满足度的相关提高权重算法原理

网站权重是什么,权重就代表一个网站的得分级别,权重越高排名能力就越强,同时可获得的关键词数量就越多。比如大家经...
seo绩效考核指标标准是什么?

seo绩效考核指标标准是什么?

优化人员的seo绩效考核标准是比较难制定的,在于很多地方无法衡量,尤其是外包公司,除了要做客户的运营之外,还要...
seo企业优化顾问如何针对网站做SEO分析?

seo企业优化顾问如何针对网站做SEO分析?

不过分的说,分析网站几乎每一个SEO站长都必须掌握的技能,因为只有学会分析网站,才能找出细微的问题,才能有所成...
网站怎么优化排名?一些平时积累的SEO收录知识总结

网站怎么优化排名?一些平时积累的SEO收录知识总结

经常有站长在优化网站的过程中不知所措,本人把一些平时积累的SEO收录知识总结成相关文章整理成笔记分享给大家,希...