我应该向公众公开用户ID吗?

Tow*_*wer 18 database security

我有一个表单,可以公开用户ID.我想知道这是危险的.就个人而言,我没有看到任何不好的事情.该ID仅用于引用单个数据库记录.

Bol*_*ock 24

如果它是危险的,Stack Overflow将不会在其URL中显示用户ID,以使用户配置文件查找起作用:https://stackoverflow.com/users/104826/rfactor

编辑巨大程度的严重性:如果用户ID本身就是敏感数据; 例如,由于某种原因,您的主要密钥恰好是社会安全号码,这绝对是一种安全和隐私责任.如果您的用户ID只是自动递增数字,那么您很清楚.

  • 如果他的帐户遭到入侵,那现在就是你的错.;) (9认同)
  • 它*可能*是危险的,但不一定是危险的. (3认同)

小智 9

一般来说,这不是一个问题,但它可以提供关于您的网站活跃程度的提示,例如您拥有多少用户等.如果您考虑这些敏感信息或者甚至好的营销完全取决于您.

有一个故事说这是德国人失去二战的原因之一.他们在每个坦克上写下了生产的连续序列号.通过收集从坦克中取出的身份证号码,英国人可以估算出整个德国军队拥有多少辆坦克并从中制定新策略.

  • 我为答案而来,为故事而留下 (5认同)

Dun*_*ott 8

我发现公开标识物理实体的主键会让人头疼。

想象一下,如果两个血液样本进入实验室,并为每个样本生成测试结果。可能会进行许多不同类型的测试,并且表示测试结果的每条记录都将使用 sample_id 作为外键。

如果您与客户共享数据库 ID 并且发现两个样本被意外切换,则必须更新代表测试的所有详细记录中的外键。如果您改为在系统外公开其他一些唯一名称,则只需在主表中的示例记录上切换两个唯一名称即可。

还有其他与数据迁移相关的优势,当实体在多个数据库中表示时存在优势,其中很难创建具有相同数据库 ID 的记录。

根据我的经验,最好在系统外公开主键以外的唯一标识符。它使您在解决数据混淆、处理数据迁移问题以及以其他方式适应未来的系统方面具有更大的灵活性。


one*_*eat 5

因为对我来说,ID 与显示用户名一样危险。