【问题标题】:Appending random characters to end of user uploaded photo将随机字符附加到用户上传照片的末尾
【发布时间】:2012-09-16 01:07:43
【问题描述】:

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

示例

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

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

【问题讨论】:

    标签: php mysql sql apache postgresql


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 有趣的是,这有点与密码加盐有关。随机后缀是一种盐,旨在使暴力破解更加困难。
    猜你喜欢
    • 2022-12-11
    • 2020-12-19
    • 2011-09-16
    • 1970-01-01
    • 2014-03-06
    • 2020-08-19
    • 2017-09-29
    • 1970-01-01
    • 2015-02-02
    相关资源
    最近更新 更多