当前位置:首页>资源分享>综合分享>WordPress REST API用户信息防护全攻略-三级安全方案详解

WordPress REST API用户信息防护全攻略-三级安全方案详解

搞网站安全要趁早,WordPress用户接口防护指南

搞网站最怕黑客惦记,最近发现WordPress自带的REST API有个暗门,游客居然能直接通过/wp-json/wp/v2/users接口查到管理员账号!这就像把大门钥匙挂在门把手上,哪个站长能安心?今天教大家几招防贼秘籍,保证让那些想偷账号的龟儿子摸不着门路。

账号示例:图中slug代表的就是管理员账号

三级防护看菜下饭(适合单用户网站)

第一招适合个人小站,直接在主题的functions.php里加个「门禁系统」。就像在村口设个关卡,不是本村人一律拦在外头。贴这段代码后,游客访问任何API接口都会吃闭门羹:

add_filter('rest_authentication_errors', function($result) {
    if (!empty($result)) return $result;
    if (!is_user_logged_in()) {
        return new WP_Error('rest_blocked', '访问受限', array('status' => 403));
    }
    return $result;
});

企业站要精准设防(适合多用户网站)

公司网站讲究精细化管理,就像高档小区要有访客登记。用这个代码只屏蔽用户列表接口,其他功能照常运转,管理员在后台操作也不受影响:

add_filter( 'rest_endpoints', function( $endpoints ){
    if ( isset( $endpoints['/wp/v2/users'] ) && !current_user_can('activate_plugins') ) {
        unset( $endpoints['/wp/v2/users'] );
    }
    return $endpoints;
});

脱敏处理保平安(例如本站主题功能依赖REST API,只隐藏用户名)

要是主题功能依赖API,咱就玩个「隐身术」。把用户名、个人链接这些敏感信息藏起来,用户ID这些不痛不痒的留着也不打紧:

add_filter( 'rest_prepare_user', function($response){
    $data = $response->get_data();
    unset($data['slug'],$data['link']);
    $response->set_data($data);
    return $response;
});

本站使用的是(直接拒绝users api)

要是主题功能依赖API,咱就玩个「隐身术」。把用户名、个人链接这些敏感信息藏起来,用户ID这些不痛不痒的留着也不打紧:

add_filter('rest_endpoints', 'refuse_rest_api_users', 10, 3);
function refuse_rest_api_users($endpoints) {
	if(isset($endpoints['/wp/v2/users'])){
		unset($endpoints['/wp/v2/users']);
	}
	if(isset($endpoints['/wp/v2/users/(?P<id>[\d]+)'])){
		unset($endpoints['/wp/v2/users/(?P<id>[\d]+)']);
	}
	return $endpoints;
}

防护效果验真章

改完代码记得用curl -I 你的域名/wp-json/wp/v2/users或者浏览器输入你的域名/wp-json/wp/v2/users测测效果。要是返回403状态码,说明防护生效了。再搭配个Disable REST API插件,那安全系数就跟武汉长江大桥的桥墩一样扎实!

重要声明
如果遇到 付费 才可 观看 的文章,建议升级 会员或者成为认证用户, 全站所有资源 任意下免费看 ”。 未经本站的 明确许可, 任何人不得大量链接本站下载资源, 不得复制或仿造本网站。 本网站对其自行开发的或和他人共同开发的所有内容、 技术手段 技术手段和服务拥有全部知识产权, 任何人不得侵害或破坏, 不得擅自使用
本站仅提供信息存储空间,不拥有所有权,不承担相关法律责任。本文地址https://www.dpzyw.com/skill/wordpress/1108.html如若转载,请注明文章出处:大鹏资源网。

给TA打赏
共{{data.count}}人
人已打赏
综合分享

ThinkPHP全栈支付系统V1.2.0深度解析:个人免签收款的终极解决方案

2025-3-2 9:39:42

字体宝库

钉钉进步体

2025-3-12 17:00:12

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
切换日夜