我想知道为什么许多网站选择使用随机id:s而不是在数据库表上从1递增.我没有找到任何正当理由进行搜索,有没有?
另外,哪种方法最好?在插入数据之前检查id是否已经存在似乎效率很低(进行第二次查询).
谢谢你的帮助!
在引擎盖下,他们可能正在使用数据库中的增量ID来识别行,但是通过URL参数向最终用户公开的值通常被制成随机字符串,以使可用对象的序列更难以猜测.
通过默默无闻,这确实是一个安全问题.它阻碍了自动脚本继续通过增量值并通过URL尝试攻击,并且阻碍了对站点内容的自动抓取.
例如,如果youtube使用增量ID而不是像这样的值v=HSsdaX4s,则可以通过简单地开始v=1并将该值递增数百万次来下载每个值.