zoukankan      html  css  js  c++  java
  • 如何防止别人用抓包工具篡改接口参数?

    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;
        }
    
    }
  • 相关阅读:
    Mysql --09 Innodb核心特性——事务
    Mysql--08 存储引擎
    MySQL--07 explain用法
    100个网路基础知识
    MySQL06-- mysql索引
    MySQL05-- 客户端工具及SQL语句
    Length of Last Word
    c++将文件之间编译关系降到最低
    c++ string.c_str()小结
    word ladder
  • 原文地址:https://www.cnblogs.com/pickKnow/p/11281298.html
Copyright © 2011-2022 走看看