我注意到 SO 和其他网站使用用户表的自动递增主键作为可公开查看的用户 ID(至少我认为这是他们正在做的事情)。在 SO 的情况下,如果您知道或可以猜到他们的用户 ID,则可以查看用户的个人资料。
在实现类似的用户 ID 生成方式之前需要考虑哪些事项?我正在开发一个非商业应用程序,它依赖于“朋友”的概念在用户之间分配各种权限,但我希望所有用户的基本个人资料都可以在一个简单的 url 上查看,例如app.com/users/userid
. 只有该用户已确认的“朋友”才能访问更详细的个人资料信息。
我想我的问题是,用户 ID 的“可猜测性”是否表明了像这样的系统的固有安全性,或者,这一切都是以实际实现单个功能的方式吗?有什么我可能不会考虑的事情会使其不明智吗?我绝对应该避免使用这些用户 ID 做什么?
注意:我不关心“竞争对手”根据最近用户的数量或用户之间的变化率知道或猜测我有多少用户。