如何防止別人用抓包工具篡改接口參數?


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;
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM