随机 URL 是保护个人资料照片的安全方法吗?

信息安全 隐私 随机的 用户名
2021-08-27 06:07:35

我想从顺序用户 ID 转移到随机用户 ID,这样我就可以公开托管个人资料照片,即example.com/profilepics/asdf-1234-zxcv-7890.jpg.

用户 ID 必须在多长时间内才能防止任何人找到他们没有获得链接的任何用户照片?

16 个小写字母和 0 到 9 是否提供了合理的复杂度?我基于 36 16 = 8x10 24,保守估计 100 亿用户帐户将空间减少到 8x10 14以每秒 1000 次猜测的速度,需要 25000 年才能找到一个帐户。除非我忽略了什么。

4个回答

这完全取决于您所说的“安全”是什么意思。

如果您唯一关心的是攻击者猜测 URL,那么 16 个字母数字会给出大约 8,000,000,000,000,000,000,000,000 个可能的地址,这足以阻止随机猜测——为了让攻击者有 50% 的机会在一个拥有 1000 个图片的网站上找到一张图片用户在一年内,他们需要每秒进行 100 万亿次尝试,足以让亚马逊或谷歌等公司崩溃。

但是 URL 泄漏还有其他方式:人们将它们放在电子邮件或博客文章中,网络爬虫会发现您没有充分保护的页面,等等。如果您确实需要保护某些东西,则需要将其置于与网站其余部分相同的安全性之后。

就个人而言,为了制作难以猜测的 URL,我会使用 GUID/UUID。搜索空间大得离谱,您不需要在多个服务器之间协调生成,并且大多数语言都有处理它们的标准例程。

既然您已经提出了保管箱,我认为我们至少可以给出一个理由说明为什么这样做是一个坏主意:

纳税申报单最终出现在 Google 上后,Dropbox 禁用旧的共享链接

据报道,该漏洞也存在于 Box 上,会影响包含超链接的共享文件。“Dropbox 用户可以共享指向其 Dropbox 中任何文件或文件夹的链接,”该公司昨天在确认该漏洞时指出:

通过链接共享的文件只有拥有该链接的人才能访问。但是,在以下情况下,文档的共享链接可能会无意中泄露给非预期的收件人:

  • Dropbox 用户共享指向包含第三方网站超链接的文档的链接。
  • 用户或链接的授权接收者单击文档中的超链接。
  • 此时,引荐来源标头会公开指向第三方网站的原始共享链接。
  • 有权访问该标题的人(例如第三方网站的网站管理员)可以访问共享文档的链接。

基本上,考虑到有多少用户使用它们,URL 很容易在不经意间泄露。如果您的用户对此进行了教育并避免了这些问题,我想这是相当安全的,但这是一个很大的假设。

也许不是您问题的答案,但如果您想在网站上“隐藏”您的个人资料图片的位置,您可以将图片嵌入为数据 URI。您可以在服务器上对图像进行 base64 编码并将字符串嵌入您的网站,而不是暴露任何图像路径。

有关描述和演示,请参见http://css-tricks.com/data-uris/http://css-tricks.com/examples/DataURIs/

其他答案通常很好,但另一个考虑因素是运输。如果您使用纯 http 或任何其他非加密协议(或通过电子邮件发送 url),则从安全角度来看,您传输和接收的所有数据(包括这些 url)都应被视为完全公开。很大一部分(有人有统计数据吗?)用户都在没有加密的公共 wifi 接入点上,并且对此类网络的主动 url/图像抓取很常见。