gpt4 book ai didi

php - 如何确保数据库中的产品 ID 不被篡改

转载 作者:行者123 更新时间:2023-11-29 05:44:02 25 4
gpt4 key购买 nike

我有一个小型的 PHP/MySQL 购物车系统,用户可以在其中添加产品、结帐和付款。
这些产品上都有 ID,这样当用户结帐时,
我可以获得该产品的属性(价格、重量、供应商的帐户 ID 等)。

现在打开 Firebug 真的很容易,
猜测另一个产品 ID,更改它,然后结帐。

防止这种情况的最佳方法是什么?
如果重要的话,商店和结账系统位于两个不同的域上。
我可以使用类似独特 token 的东西
但如果多个客户可以同时使用购物车,那将如何工作?

编辑:哇,打得太快了,遗漏了一些重要的细节。购物车当前表示为存储在 PHP session 中的 JSON。所有产品都有一个将它们与供应商帐户相关联的 account_id。

如果用户更改了产品 ID 并且碰巧在另一个供应商的帐户下获得了产品(实质上是从不同公司的商店购买了另一家公司的产品),那么问题就会发生,这是不受欢迎的。感谢您到目前为止的回答。

最佳答案

使用服务器端 session 存储购物车详细信息。

每个 session 都有一个唯一的 ID,存储在 cookie 中。所有详细信息(所选项目、金额等)都与此 sessionId 相关联。

根据定义,您不希望不同的客户使用同一个购物车。相反,每个客户都使用自己单独的购物车副本。

如果您需要与某些外部服务“共享”sessionId,请计算一个单独的唯一 key 并将此 key 与第三方服务(在您的情况下为结帐服务)共享。
这确保您可以在与第三方的通信中唯一地识别您的客户,而第三方不知道您如何识别您的客户或与您的客户通信。 (要记住的重要一点是,sessionId 是一个共享的 secret ,任何其他人都不应该知道它)。

关于php - 如何确保数据库中的产品 ID 不被篡改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4267738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com