【发布时间】:2016-10-26 08:34:50
【问题描述】:
我想使用用户的唯一 ID 来保存 cookie - 这样我就知道哪个用户登录了,然后我可以更改他们的内容以适合。
我目前只是在创建新记录时使用通常的自动 ID,但我听说创建用户帐户(特别是当您要使用该 ID 更改内容时)您不应该拥有它们1个接一个;例如不是 378、379,380 等等,更像是 138462193、109346286、982638192,所以它有点像随机唯一标识符。
我将如何实现这一目标?
这是最佳做法吗?
【问题讨论】:
-
这会有什么不同?它所能提供的只是一种虚假的安全感。混淆不能提供更高的安全性。如果您的应用程序允许您使用其他人的 ID 来操作事物,那么您必须修复该隐私漏洞。不要掩饰。
-
好的,所以使用 UUID 库
-
只是从如果有人要尝试攻击它的角度来看(当然我有加密的密码,然后当它存储在 cookie 中时重新加密),他们将无法循环通过用户,因为他们的 id 号码之间可能存在 1 到 100000 的差距,如果您不认为这将是一个问题,那就太酷了!会让我的生活更轻松
-
公共 user_id 和内部 id 不必是同一件事,所以我将 auto_increment 用于内部 PK,并且(可能)使用
MAX(public_id) + RAND()*10之类的东西作为 public_id - 但是具有适当的事务约束以防止竞争条件 - 或其他人提到的 UUID。
标签: php mysql phpmyadmin