如何限制ImageResizer应用程序创建的图像文件数量?

时间:2013-07-22 08:58:25

标签: security imageresizer

我们即将开始使用ImageResizer(http://imageresizing.net/),我们正在使用DiskCache插件。我们担心创建数百万个文件并导致存储问题会非常容易。

我无法找到所有配置选项的当前和详细说明,有些看起来可能是我们想要从默认值更改的内容(尽管有警告)(即子文件夹=“32”targetItemsPerFolder =“400” maximumItemsPerFolder =“1000”)但我无法分辨它们是如何一起工作的。这里提到了一些“子文件夹”相关配置:http://imageresizing.net/plugins/diskcache但我不确定未使用的用法或其他设置。

有没有办法限制创建的文件数量?当达到此限制时会发生什么?我正在考虑一个脚本化的场景,其中某人正在请求具有不同指令的所有文件,从而创建数百万个文件......那么当重复点击此限制时会发生什么?

1 个答案:

答案 0 :(得分:1)

子文件夹x targetItemsPerFolder =软限制

32 x 400 = 12,800

子文件夹x maximumItemsPerFolder =硬限制

32 x 1,000 = 32,000

除非所有缓存文件都“主动使用”,否则将强制执行软限制。 无论情况如何,都会强制执行硬限制。如果要增加缓存的大小,请增加subfolders而不是其他值;他们已经在NTFS文件系统上进行了优化以获得最佳性能。

设置autoClean=false以禁用后台缓存清理。

即使禁用了autoClean,使用压缩图像填充存储空间也是运行(D)DOS攻击的极其低效的方法。通过使用像CloudFront这样的CDN,或通过将其置于自己的启用了限制的应用程序池中,它也可以通过各种方式轻松缓解 - through standard (D)DOS prevention methods。 ImageResizer无需在您的应用程序中运行;如果您使用的是URL API,它总是可以外部化。

如果您的网站是每天吸引目标(D)DOS攻击的网站,您可以考虑使用哈希 - IE签署所有图片网址,如果网址没有以HTML格式显示,则不会提供。 EncryptedPlugin(测试版,未记录,但包含在下载中)可以为您执行此操作,但除非您实际看到有针对性的攻击,否则不要。没有收获就会痛苦。

知道有很多可用的缓解方案。如果网站被认为是针对性攻击的高风险,请为图像URL保留一个开放的方式(通过帮助方法或其他方式进行漏斗)。这将确保您可以利用本文中提到的任何缓解选项。

然而,解决一般问题的更好的方法是购买防火墙或使用具有良好IPS的托管公司。