看起来URL总是以基编码代替,产生一个短字符串。从设计的角度看,用数字代替不是更容易吗?当然,如果您这样做,您的urls可能会被“浏览”,但同样适用于Base64编码的数字。
发布于 2020-08-17 23:25:51
一个微小的网址的设计目标之一是它尽可能短。Base64使用最少的可读性字符提供了最大数量的不同urls。
由于安全原因,在urls中很少使用递增数字。使用递增的url,用户或web刮刀可以简单地将1添加到任何url中,以获得序列中的下一个url。
发布于 2020-08-18 14:22:42
Base64允许更高的数据密度。对于每一个base64字符,您有64个可能的选项,而数字只有10个。引用卡尔的话,1999在base64中是fP,而且要短得多。这样就可以使用更多的短urls。
另一个原因是容易擦伤。如果您使用增量ID,并获得ID=7,您可以合理地猜测ID=6、ID=8和ID=5等的URL。允许简单地猜测ID并不好--而您永远也无法阻止它,使用随机ID(base64中有更多的ID)只会帮助保护这些URL的内容不受查找者的影响。
在另一个线程中提到了另一个原因--每个服务都有一个“第三个用户”--但是您不希望第三个用户知道他们是第三个用户。如果你给他们的网址id 3,这是明目张胆地没有其他人使用该网站,而不是你想要的东西。您可以从1000开始来解决这个问题,但是只需要限制有效ids的数量。
即使这些不是很好的理由,也没有理由为这样的服务使用递增的整数作为ID。
https://softwareengineering.stackexchange.com/questions/414948
复制相似问题