首页/公告与教程/价格必须在服务端算
风控

价格必须在服务端算

2026-10-05 · 4 分钟阅读

最贵的一个 bug

如果结算接口接收 { productId, price } 并直接落库,攻击者只需要改一个请求体,就能用 0.01 元买走任何东西。

正确的形状

客户端只传「商品 + 规格 + 数量 + 表单」,服务端拿着这份输入,去目录里重新查价格、重新套会员折扣、重新算优惠码,再生成订单。

同理适用于

  • 库存:服务端校验收货数量,不要相信前端的限购。
  • 表单:账号主体的格式校验必须服务端也做一遍。
  • 支付状态:只有支付渠道回调验签通过才能标记已支付。