1,案例
1 分錢買帶電腦。購買電腦,在調用支付接口之前,利用類似Fiddler等抓包工具,定位到支付接口,將參數(金額)修改為0.01元。結果是:電腦購買成功,一個月之后成功入獄。
2,怎么避免讓別人用抓包工具修改參數呢?
基於token 方式隱藏參數。
3,代碼實現
@RestController public class PayController extends BaseApiService { @Autowired private BaseRedisService baseRedisService; private static long timeToken = 15 * 60l; @RequestMapping("/pay") public ResponseBase pay(String token) { // 獲取提交參數 數據庫保存., if (StringUtils.isEmpty(token)) { return setResultError("token 不能為空!"); } String reuslt = (String) baseRedisService.getString(token); if (StringUtils.isEmpty(reuslt)) { return setResultError("參數不能空!"); } System.out.println("獲取提交的參數reuslt:" + reuslt); return setResultSuccess("獲取提交的參數reuslt:" + reuslt); } @RequestMapping("/getToken") public String pay(Long userId, Long money) { String payToken = UUID.randomUUID().toString(); baseRedisService.setString(payToken, userId + "-" + money, timeToken); return payToken; } }