我总是在数据库中包含一个具有自动增量功能的列ID。我有什么理由不想将其用作社交网站的用户ID。该ID将公开并在URL中使用,而不是。想象一下,比添加另一个函数更容易为成员创建一个单独的唯一ID。只是想在我的代码中使用它之前看看是否有其他人发现了这个问题。
答案 0 :(得分:2)
我也认为,这是解决基本问题的规范方法。
它还使得与其他用户ID的其他网站的链接变得微不足道:只需要一个包含user-id的表(如你所述),其他站点id(来自foreign sites
表),user-id to use那里。
我观察到的唯一缺点是,当一些脚本小子使用n,n + 1,n + 2,...来测试易受攻击密码的用户ID。虽然通过随机ID变得更难,但我个人认为,这应该在其他地方处理。
答案 1 :(得分:2)
ID本身会泄露信息,使第三方能够估算他或她在您网站上注册的日期。因此,如果爱丽丝是鲍勃的朋友并且知道她去年注册并且他在3天之后注意并且她的身份证是100且他是150,那么她将知道当时在你的网站上注册的Carol,她不是她的朋友。不像卡罗尔声称的那样“最近”,试图找个借口,说明她为什么不是爱丽丝在你的社交媒体网站上的“朋友”!
这是一个问题吗?你将自己决定,但我个人更喜欢有点专业/偏执(这两个经常在一起,无论对我们的职业意味着什么!)并避免在URL中包含自动增量ID,即使有最轻微的安全性/隐私问题。或者至少,建议你:-)
如果您决定采取美德的路径,您可能需要考虑其他ID也泄漏信息(例如,如果她发现她的个人资料ID比Bob的数量少,那么Alice会比她声称的更早知道Carol) 。因此,虽然看起来您可以添加GUID列,并将其用作辅助ID,可以安全地包含在URL中,但您最好从自动增量ID切换到使用GUID。 (有关GUID的更多信息,请访问:http://en.wikipedia.org/wiki/Globally_unique_identifier)
希望有所帮助: - )
答案 2 :(得分:1)
我认为这是一种非常有效的方法。如果您想为用户支持唯一ID(例如,如果他们想要唯一的user_id),您可以随后将其作为单独的列添加到Users表中。
答案 3 :(得分:1)
不,没有理由不想将它用作user_id。
如果您将其他列设置为id,则会遇到以下问题:
此外,如果按主键(也是AUTO_INCREMENT)执行SELECT过滤,则在特定用户的表中查找会快得多。