我正在使用 ImageSharp.Web 来调整我的 ASP.NET Core 5.0 网站上的图像大小。
为了防止 DDoS(分布式拒绝服务攻击),我想限制 ImageSharp.Web 也可以调整大小。
例如,我有一个原始大小为 800x400 (100kb) 的图像,我正在使用以下方法调整其大小:
<img src="image.jpg?width=300&height=300" alt="..." /> // image will be 40 kb, bandwidth saved yay!
问题是,如果一个邪恶的用户决定使用以下方式请求图像:
<img src="image.jpg?width=8000&height=4000" alt="..." /> // 8,000 x 4,000 => image is now 2mb
如果该用户请求此图像具有“高编号”像素大小(7000,7001,7002...8000} 说 10,000 次,则由于内存耗尽和带宽使用,服务器将变得无响应。
- 如何限制 ImageSharp.Web 不将图像调整为高于其原始大小?
- 如何将 ImageSharp.Web 限制为仅将图像大小调整为 300x300 和 300x600?
我在 ImageSharp.Web ( https://docs.sixlabors.com/articles/imagesharp.web/gettingstarted.html )中没有看到任何可配置的选项。
我的startup.cs:
public void ConfigureServices(IServiceCollection services)
{
// ....
services.AddImageSharp();
}