为什么要随机化云存储/ CDN的文件名?

Ada*_*dam 6 cloud cdn content-delivery-network amazon-s3 cloud-storage

当您查看Twitter等社交网站上的个人资料图片时,他们会存储以下图像文件:

http://a1.twimg.com/profile_images/1082228637/a-smile_twitter_100.jpg
Run Code Online (Sandbox Code Playgroud)

或者甚至在20110912这样的路径中的某个地方.我能想到的唯一直接好处就是阻止僵尸程序以线性方式通过并下载存储中的所有文件.我错过了其他任何好处吗?随机化它的最佳方法是什么?

我正在使用Amazon S3,所以我将有一个子域服务我所有的静态内容.我的计划是在我的数据库中存储一个整数ID,然后只使用id连接URL以形成位置.

Eri*_*ond 11

我在公共URL中加密加密标识符的一个原因是,企业的增长率并不总是公开的.

如果仅通过创建新用户帐户或上传图像可以推断出当前ID,则外部人员可以通过定期执行此操作来计算增长率(或上限),并查看在此期间使用了多少ID.经过的时间.

无论是停滞不前还是它都呈指数级爆炸,我希望能够控制这些信息的发布,而不是让竞争对手或业务分析师能够为自己推断出这些信息.

离线示例包括发票和支票号码.如果您定期向公司收取费用或由公司支付,那么您可以查看他们在该时间段内编写的发票或支票数量.

这是我维护的CPAN(Perl)模块,它使用基于SkipJack的双向加密来扰乱32位ID:

http://metacpan.org/pod/Crypt::Skip32

它是Greg Rose用C语言编写的Skip32算法的直接翻译:

http://www.qualcomm.com.au/PublicationsDocs/skip32.c

使用这种方法将每个32位id映射到(有效随机)对应的32位数字,该数字可以反转回原始id.您无需在数据库中保存任何额外内容.

我将加扰的id转换为8个十六进制数字,以便在URL中显示.

一旦你的id接近429亿(32位),你就需要计划扩展URL结构以支持更多,但我希望尽可能长的缩短URL.


小智 5

更改 URL 是使过时资产失效的安全方法。

如果你想允许用户存储私有镜像,这也是必要的。一旦您将资产存储在 CDN 上,使用从用户帐户名称/ID/路径中扣除的路径将使隐私设置变得毫无用处。