如果我有一些资源(例如图像(,并且我希望只有链接到它的人才能访问它,该怎么办?如何生成这样的链接(标识符(?UUID适用于此吗?
这正是未列出的视频在YouTube中的工作方式。人们只有在有链接的情况下才能看到未列出的视频,但你无法阻止他们共享链接。
因此,使用UUID(实际上是一个128位的数字(是没有意义的,这将导致巨大的URL。即使是YouTube标识符也只相当于大约64位。如果你只想对偶然的观察者隐藏256个未列出的URL,那么一个有2^40可能性的随机数(例如,10位数的十六进制数或8位数的32进制数(就足够了,除非你真的想打败暴力攻击,否则只需10亿次猜测就可以成功找到一个未列出资源。
还要记住,来自未列出资源的任何外部链接也可以通过Referer标头进行追溯,不仅可以从HTML超链接进行追溯,还可以从包含的外部资源(如Javascript库和web字体(进行追溯。在这方面,使用机器人排除标准可能会有所帮助。