1

我们目前正在测试 Image Resizer 库,其中一个问题是,如果有人以编程方式向服务器发送数千个任意大小的图像大小调整请求,我们如何避免对站点的恶意攻击,从而使服务器的 CPU/RAM 过载并可能由于大量缓存文件而导致磁盘空间耗尽。

有没有办法将某些维度列入白名单?或者避免这种情况的最佳做法是什么?

谢谢!斯蒂芬

4

1 回答 1

1

在对 ImageResizer 的 (D)DOS 攻击期间,CPU 或 RAM 通常都不会过载。内存分配是连续的,这意味着除非剩余大约 15-30% 的可用 RAM,否则无法处理图像。在默认管道下,仅使用 2 个内核进行图像处理,因此普通服务器也不会看到 CPU 饱和。

一般来说,攻击 ASP.NET 网站的方法远比通过 ImageResizer 有效得多。任何重数据库的页面都更有可能成为弱点,因为内存分配更小,更容易使服务器饱和。

启用 autoClean="true" 可以缓解磁盘空间不足。

如果您是一个高调的网站,有很多坚决的恶意,您还可以考虑以下几点:

  1. 使用请求签名 - 仅接受您的服务器生成的 URL。
  2. 使用Presets 插件将定义的允许命令组合列入白名单

这两者都会降低开发敏捷性并限制您对响应式网页设计的选择,因此除非您过去确实受到过攻击,否则我不建议您这样做。

在实践中,针对动态映像软件的 (D)DOS 攻击很少能用于破坏任何东西,除非是暂时的未缓存图像,即使在同一应用程序池下运行也是如此。由于访问过的图像往往会被缓存,实际效果相当可笑。

于 2013-11-05T23:50:46.410 回答