找回密码
 立即注册

如何修复 WordPress 因 REST API 而暴露的用户名枚举漏洞

2024-11-23 17:46| 发布者: admin| 查看: 199| 评论: 0|来自: 我爱水煮鱼

摘要: 一、直接屏蔽 REST API客户是不使用古腾堡编辑器的,而他的 APP 使用的接口又是我自己写的,所以我就直接大手一挥帮他把所有的 REST API 都屏蔽了:add_filter('rest_authentication_errors', fn($access)= new WP_E ...

一、直接屏蔽 REST API

客户是不使用古腾堡编辑器的,而他的 APP 使用的接口又是我自己写的,所以我就直接大手一挥帮他把所有的 REST API 都屏蔽了:

add_filter('rest_authentication_errors', fn($access)=> new WP_Error('rest_cannot_acess', 'REST API不再提供访问', ['status' => 403]));

二、屏蔽用户接口

如果不想屏蔽所有接口,也可以只屏蔽相关的用户接口:

add_filter('rest_endpoints', function($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;
});

三、移除用户接口里面的登录名

继续缩小一点范围,我们还可以不屏蔽用户接口,只移除用户接口里面的登录名:

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

即将下图中红框中的部分去掉,用户登录名就没有暴露了:



路过

雷人

握手

鲜花

鸡蛋

QQ|Archiver|手机版|小黑屋|软件开发编程门户 ( 陇ICP备2024013992号-1|甘公网安备62090002000130号 )

GMT+8, 2025-1-18 09:54 , Processed in 0.029059 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

返回顶部