繁体   English   中英

C#Image.FromStream安全吗?

[英]C# Image.FromStream is that secure?

从请求中读取数据作为流后,我需要将其转换为图像,因此我使用了以下方法:

Stream inputStream = HttpContext.Current.Request.InputStream;
Image img = Image.FromStream(inputStream)

我的问题是,虽然我无法知道inputStream中的内容(文件格式已经完成,但仍然..),但可能存在病毒或恶意软件,因此在这种情况下,FromStream(Stream)会引发ArgumentException。 因为它不是图像

我的问题是-如果上传的文件包含病毒,并且该方法在尝试将流转换为Image时抛出异常,这是否会对服务器造成伤害? 如果是这样,如何避免呢? 在服务器中处理文件上传的方案应该是什么?

即使我们可以确定地回答这个问题(由于未知的漏洞是未知的 ,我们也无法解决,但我们无法解决这个问题,因为Microsoft大概已经修复了该漏洞),在此处发布漏洞利用细节是不负责任的。 如果我通过Image.FromStream (或.NET框架的任何部分,或者实际上是任何其他方式)知道了攻击媒介,那么要做的事情就是将其报告给供应商(在这种情况下为MSFT)并等待他们要解决这个问题。

基本上,您需要相信Microsoft已经检查了解析图像数据的边缘条件,并确保该代码中没有本地缓冲区溢出或其他类似漏洞。 微软过去曾承认犯过一些错误,但公平地说,在过去几年中,解决这些错误要好得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM