Описание проблемы: отсутствие проверки прав на использование couponId
В методе submit класса ApiOrderController.java вызывается orderService.submit(getJsonRequest(), loginUser). getJsonRequest получает соответствующие данные от фронтенда, при этом не происходит проверки данных от фронтенда; в методе orderService.submit код Integer couponId = jsonParam.getInteger("couponId") напрямую получает couponId. Использование couponId в последующем коде: couponVo = apiCouponMapper.getUserCoupon(couponId); также не включает проверку прав. Если злоумышленник попытается использовать чужой couponId и удастся, он сможет использовать чужие купоны, тем самым снижая фактическую стоимость покупки товаров.
Рекомендация по исправлению:
В методе orderService.submit или в слое контроллера или маппера добавить соответствующую проверку прав, чтобы убедиться, что пользователь может использовать только свои купоны.