From f103c8c1e09e2475dc4ac4d3ddc1598146e4da38 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 28 八月 2026 15:55:12 +0800
Subject: [PATCH] 修复系统越权访问漏洞
---
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java | 14 ++++++++------
1 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
index 82c6489..da2fa27 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -32,6 +32,7 @@
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.annotation.Logical;
import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.ruoyi.common.security.annotation.InnerAuth;
import com.ruoyi.common.security.auth.AuthUtil;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.common.security.utils.SecurityUtils;
@@ -261,6 +262,7 @@
* 远程调用 积分兑换订单 退款回退积分
* @return
*/
+ @InnerAuth
@PostMapping(value = "/refundPoints/{param}")
public R refundPoints(@PathVariable("param")String param) {
String[] split = param.split("-");
@@ -287,6 +289,7 @@
}
@ApiOperation(value = "管理后台-根据手机号查询用户ids", tags = {"管理后台-活动费用统计"})
+ @RequiresPermissions(value = {"/appUser/select", "/appUser/list"}, logical = Logical.OR)
@PostMapping(value = "/user/getUserIdsByPhone")
public R<List<Long>> getUserIdsByPhone(@RequestParam("phone") String phone) {
return R.ok(appUserService.list(new QueryWrapper<TAppUser>().like("phone",phone)).stream().map(TAppUser::getId).collect(Collectors.toList()));
@@ -692,9 +695,8 @@
@ApiOperation(value = "用户详情积分明细", tags = {"小程序-个人中心"})
@PostMapping(value = "/user/points/page1")
public R<Page<TAppUserIntegralChange>> pointsDetail1(@RequestBody PointsQueryDto pointsQueryDto) {
- if (pointsQueryDto.getUserId()==null){
- pointsQueryDto.setUserId(tokenService.getLoginUserApplet().getUserId());
- }
+ // 强制绑定当前登录用户,防止越权查询他人积分明细
+ pointsQueryDto.setUserId(tokenService.getLoginUserApplet().getUserId());
List<Integer> types = new ArrayList<>();
if (pointsQueryDto.getType()==null){
types.add(1);
@@ -749,9 +751,8 @@
@ApiOperation(value = "余额明细", tags = {"小程序-个人中心"})
@PostMapping(value = "/user/balance/page1")
public R<Page<TExchangeCodeUseRecord>> balanceDetail(@RequestBody ExchangeCodeUseRecordQuery queryDto) {
- if (queryDto.getUserId() == null) {
- queryDto.setUserId(tokenService.getLoginUserApplet().getUserId());
- }
+ // 强制绑定当前登录用户,防止越权查询他人余额明细
+ queryDto.setUserId(tokenService.getLoginUserApplet().getUserId());
return otherClient.exchangeCodeUseRecordPage(queryDto);
}
@@ -1024,6 +1025,7 @@
+ @RequiresPermissions(value = {"/appUser/giftVip", "/appUser/gift_vip"}, logical = Logical.OR)
@PostMapping(value = "/user/give/vip1")
public R giveVip1(@RequestBody GiveVipDto giveVipDto) {
String[] split = giveVipDto.getUserIds().split(",");
--
Gitblit v1.7.1