【问题标题】:image upload - resize to avoid content-smuggling attacks图片上传 - 调整大小以避免内容走私攻击
【发布时间】:2012-02-09 12:58:00
【问题描述】:

阅读这篇文章后,我选择将图像大小调整 1px 以阻止内容走私攻击:

Image Uploading - security issues

但出于某种原因,透明 gif 会出现黑色背景。这是代码:

        Bitmap FullsizeImage = (Bitmap)System.Drawing.Image.FromStream(OriginalFile);

        //FullsizeImage.MakeTransparent(Color.Transparent);

        int NewWidth = FullsizeImage.Width - 1;
        int NewHeight = FullsizeImage.Height * NewWidth / FullsizeImage.Width;

        Bitmap CroppedImage = new Bitmap(NewWidth, NewHeight);
        Graphics g = Graphics.FromImage(CroppedImage);
        g.DrawImage(FullsizeImage, new Rectangle(0, 0, FullsizeImage.Width, FullsizeImage.Height));

        CroppedImage.Save(ImagePath, FullsizeImage.RawFormat);

        g.Dispose();
        CroppedImage.Dispose();
        FullsizeImage.Dispose();

我尝试使用 FullsizeImage.MakeTransparent(Color.Transparent) 但这会将图像转换为 png 并且我想保留原始格式。

我的最终目的是避免可能的攻击,所以关于如何以不同的方式执行此操作而不是调整大小的任何想法?或者任何人都有通过保持格式实际调整透明 gif 大小的代码?

【问题讨论】:

    标签: .net image security image-processing


    【解决方案1】:

    调整图像大小需要将其转换为全色,这样做时调色板级别的透明度会丢失。

    我建议为图像添加一个 1 像素的边框,并使用透明色填充边框。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-25
      • 2014-08-26
      • 2011-05-28
      • 1970-01-01
      • 2018-09-14
      • 2016-10-11
      相关资源
      最近更新 更多