为什么网站倾向于在数据库表上使用随机ID:s?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (21)

我想知道为什么许多Web站点选择使用随机ID:s而不是从数据库表中的1开始递增

提问于
用户回答回答于

在这种情况下,他们很可能会在数据库中使用增量id来标识行,但通过URL参数向最终用户公开的值通常会变成随机字符串,以使可用对象的序列难以猜测。

通过默默无闻的方式确实是一个安全问题。它妨碍自动脚本继续执行增量值并尝试通过URL进行攻击,并阻止自动抓取站点内容。

例如,如果youtube使用增量id而不是数值v=HSsdaX4s,则可以通过简单地v=1并将该值增加数百万次来下载。

用户回答回答于

序列ID不能很好地扩展(它们在分布式系统中成为同步瓶颈)。

另外,你不需要检查一个新生成的随机ID是否已经存在,你可以假设它没有(因为它们有这么多)。

扫码关注云+社区