2

我见过几个网站,其中用户提供的图像以一串看似随机的字符结尾。

例子

http://farm2.staticflickr.com/1116/5136519916_f9b8699cdc_o.jpg

问题:如果图像文件名以照片的唯一 ID 开头,是否真的需要这样做。此 id 是从与此图像对应的数据库表中取出的行。按照上面的例子,我猜这5136519916是照片的唯一 ID,f9b8699cdc是随机字符串,o是图像的大小。

4

1 回答 1

5

从理论上讲,只要文件名是唯一的,就没有技术原因需要添加这样的随机字符串。但是,我怀疑这些字符串是出于隐私考虑。

想象一下,如果您的文件名只是照片的唯一 ID。机器人可以系统地扫描您的整个站点,只需将所有照片加一即可。如果您的用户正在上传照片,但他们不希望每个人都能看到它们(例如 Facebook 或 Flickr 中的私人照片),那么这是一个非常不安全的系统。添加此随机字符串有助于通过使链接更难猜测来隐藏用户的内容以防止未经授权的访问。“ImageShack 的安全性如何?”模糊地解决了这个问题。关于ImageShack 的 FAQ 的问题

组合unique identifier + randomized element意味着简单的唯一 ID 计算(将标识符增加 1)和轻松添加随机元素(生成字符串并将其附加到 ID)。比计算一个完全随机但仍然唯一的标识符要高效得多。

从技术上讲,完全随机的文件名会更安全,但即使只添加三个字母数字字符 ( a-zA-Z0-9),例如 ImageShack,也意味着对于每个唯一的照片 ID,文件名可能是任何52*52*52 = 238382可能的文件名之一。突然之间,任何扫描您的网站以查找用户照片的人都不太走运。

于 2012-09-16T01:19:31.263 回答