database-design - 电子商务网站是否应该使用混淆的订单 ID

标签 database-design e-commerce security

我注意到,在向用户提供订单 ID 时,在线商店使用简单的整数并不是标准做法。这是一种安全驱动的做法,还是为了允许更多具有更短字符长度的订单?

如果它是安全驱动的实践,那么生成此类 ID 的最佳方法是什么(考虑到数据库可能使用整数 IDENTITY 作为订单表主键)?

最佳答案

主要是为了让用户无法查看别人的订单。

如果为用户分配的购物车/订单 ID 为 1000,则可以安全地假设之前有 999,之后可能有 1001。

有多种方法可以确保这一点,例如确保用户已登录并且订单属于他们。如果您更容易在内部使用,您可以为主键保留整数标识。

对于面向公众的一方,混淆订单 ID 的一个简单方法是为记录分配一个 GUID。然后,您可以通过 GUID 访问用户订单,而不是从主键访问用户订单。

关于database-design - 电子商务网站是否应该使用混淆的订单 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8497348/

相关文章:

java - sql中的用户高度和体重

mysql - 照片关键字和数据库 - 哪种实现?

mysql - 如何将两个嵌套的 MySQL 查询合并到一个 View 中?

jquery - 对象不支持此属性或方法

java - 谷歌云 HSM 的 X509 证书

mysql - MySQL 加密的最佳实践?

paypal - 日本 konbini(便利店)支付的支付网关/处理器

e-commerce - 是否可以在不将用户重定向到结帐页面的情况下使用 PayPal API 向用户收费?

php - 在共享主机环境中关闭页面的 mod_security

PHP 安全 - 清理和清理