如何在ASP.NET应用程序中使用图像大小调整来防止DOS攻击?
我目前正在开发一个网站,用户可以上传图像作为头像使用,我知道这让我听起来有点偏执,但我想知道,如果恶意用户上传的图像尺寸非常大,会消耗服务器内存(作为DOS攻击),我已经对可上传的文件大小有了限制(250 k)但是,如果图像(例如)是包含一种颜色的JPEG,并且使用非常低的质量设置创建,则即使是该尺寸也可以允许图像具有难以置信的大尺寸。考虑到图像在调整大小(即未压缩)时作为位图上传到内存中,我想知道是否会发生此类DOS攻击,即使要先检查图像尺寸,也必须先将其上传到内存中,您是否听说有攻击利用了此漏洞?我太担心了吗?我想你应该检查一下图像的尺寸。由于只有几种格式,这并不难,您可以轻松地过滤出大图像。通常,你可以上传头像的网站会告诉你,不仅要有小于特定文件大小的图像,还要提供图像尺寸边界,所以通常要检查这一点。这些尺寸应该能够在不将整个图像地图加载到内存中的情况下获得?也许您可以在上找到有关此问题的更多信息。您必须验证图像文件是否确实是图像文件。问题不是对服务器的攻击。问题是有人上传ActiveX控件而不是图像。然后,该文件将下载、安装并破坏每台进行下载的Windows计算机 威胁不在于你。威胁是你将成为病毒携带者 您必须验证每个文件以确认它是真实的图像文件。您可以检查尺寸,如果需要,可以不检查。大多数图像处理库都可以读取图像的标题,检查尺寸和像素数等等如何在ASP.NET应用程序中使用图像大小调整来防止DOS攻击?,asp.net,Asp.net,我目前正在开发一个网站,用户可以上传图像作为头像使用,我知道这让我听起来有点偏执,但我想知道,如果恶意用户上传的图像尺寸非常大,会消耗服务器内存(作为DOS攻击),我已经对可上传的文件大小有了限制(250 k)但是,如果图像(例如)是包含一种颜色的JPEG,并且使用非常低的质量设置创建,则即使是该尺寸也可以允许图像具有难以置信的大尺寸。考虑到图像在调整大小(即未压缩)时作为位图上传到内存中,我想知道是否会发生此类DOS攻击,即使要先检查图像尺寸,也必须先将其上传到内存中,您是否听说有攻击利用了此
通常,人们会根据图像制作缩略图,一旦打开图像,你也可以这样做。DoS可能是一个问题,也可能不是一个问题,这取决于是否有人决定以你的网站为目标 <>但是,对于您的站点扩展到并发用户的1000S,您可以考虑在单独的进程中处理图像处理。 当图像处理由页面代码处理时,您将面临耗尽内存、CPU或ASP.NET线程的风险——瓶颈取决于您的服务器配置 可能的解决办法:
这项努力是否值得,取决于您的预期流量。您可以使用负载测试工具编写脚本并模拟这些操作,以查看您的站点是否能够处理负载。感谢您的回答,实际上我已经在我的应用程序中打开并调整了图像大小,因此如果它们不是真实的图像,就不会保存在服务器上,我的问题是在我打开图像之前检查它们,这样我就可以避免DOS攻击,“内存不足攻击”是不存在的。您的图形库已经处理了这个问题。