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

时间:2010-09-02 16:28:48

标签: database security

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

7 个答案:

答案 0 :(得分:22)

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

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

答案 1 :(得分:8)

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

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

答案 2 :(得分:4)

对我而言ID与显示用户名一样危险。

答案 3 :(得分:3)

我发现暴露识别物理实体的主键会造成麻烦。

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

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

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

根据我的经验,最好在系统外部公开除主键之外的唯一标识符。它为您提供了更大的灵活性,可以解决数据混淆,处理数据迁移问题以及未来的系统保护。

答案 4 :(得分:2)

公开用户ID本身并不是坏事。这取决于所需的隐私和安全级别。如果用户ID没有公开,并且不能绑定到任何其他应该是私有的个人数据,那么可能不是问题。

但不要认为公共用户ID永远不会成为问题。

确保您不会仅通过了解用户ID就允许任何人侵入任何私人数据。 Facebook有这样的问题。这只是one example。虽然揭示用户ID不是整个故事,但它是等式的一部分。

答案 5 :(得分:1)

它会伤到什么吗?只有你可以决定,你应该考虑通过。 但一般来说,如果没有商业理由,显示用户ID的形式很差。 (保存你的工作可能不是一个好的商业原因。)

答案 6 :(得分:1)

如果它是生成的数据库ID而没有其他含义,那么它并不危险。虽然我不认为露出身份也很优雅。这是一个技术细节,我无法理解你为什么要向用户展示它。

相关问题