首頁/公告與教學/價格必須在服務端算
風控

價格必須在服務端算

2026-10-05 · 4 分鐘閱讀

最貴的一個 bug

如果結算介面接收 { productId, price } 並直接落庫,攻擊者只需要改一個請求體,就能用 0.01 元買走任何東西。

正確的形狀

客戶端只傳「商品 + 規格 + 數量 + 表單」,服務端拿著這份輸入,去目錄裡重新查價格、重新套會員折扣、重新算優惠碼,再生成訂單。

同理適用於

  • 庫存:服務端校驗收貨數量,不要相信前端的限購。
  • 表單:帳號主體的格式校驗必須服務端也做一遍。
  • 支付狀態:只有支付管道回調驗簽通過才能標記已支付。