首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >接受图片上传时的安全问题

接受图片上传时的安全问题
EN

Stack Overflow用户
提问于 2009-09-28 04:31:32
回答 4查看 2.5K关注 0票数 8

除了所有HTTP上传的正常内容之外,接受图像上传时需要考虑的主要安全问题是什么?

我正在接受图片上传,然后将这些图片展示给其他用户。

例如,我应该如何验证上传的图像实际上是一个有效的图像文件?在查看器中是否有任何已知的漏洞可被格式错误的图像文件利用,对于这些文件,我应该关注意外传递的漏洞?(快速搜索一下似乎显示IE5/6中曾经有过。)

我是否应该剥离所有图像元数据,以帮助用户防止无意中的信息泄露?或者,是否有一些安全、必要或有用的东西可以允许?

常见图像格式中有没有可能存在安全漏洞的神秘功能?

有没有处理这些问题的库?(和/或其他问题,如将渐进式JPEG转换为普通JPEG、向下采样以标准化大小、优化PNG等)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-09-28 04:48:27

我最近从web security video学到的一些东西

  • 核心选项是为来自单独域的所有上传内容提供服务,该域只提供静态内容-所有功能都被禁用,没有任何重要的内容被存储通过imagemagick等处理图像以剔除有趣的业务。
  • 有关您面临的问题的示例,请查看GIFAR,这是一种将GIF和Java JAR放在同一文件中的技术。
票数 2
EN

Stack Overflow用户

发布于 2009-09-28 04:36:45

您最大的风险是攻击者试图将某种类型的可执行代码上传到您的服务器。如果上载的文件随后可在web上浏览,则攻击者可能会使代码在您的服务器上运行。您最好的保护措施是首先将上传的文件保存到不可公开浏览的位置,尝试将其作为图像加载到您的编程语言中,如果可以将其成功解析为图像,则允许加载。很多时候,人们无论如何都会想要调整图像的大小,所以真正这样做并不是额外的工作。验证图像后,您可以将其移动到web服务器的公共可浏览区域。

此外,请确保您对文件上传大小有限制。默认情况下,大多数平台都会有某种限制。您不希望恶意用户通过无休止的文件上传来填满您的磁盘。

票数 2
EN

Stack Overflow用户

发布于 2009-09-28 04:46:42

在图像格式化程序中传播bug的风险并不是您的问题,但是您可以通过遵循将".jpg“映射到您的可执行语言的一般实践,并手动处理每个图像(通过这种方式,您也可以执行引用检查)来提供帮助。

您需要注意以下事项:

  • 用户以图像形式上传代码(.jpg中包含实际的c#代码)
  • 任何无效的扩展(您可以检查此扩展名)
  • 用户试图对您进行与路径相关的攻击

最后一个是你需要注意的,如果你在动态阅读图片(如果你遵循我的第一点建议,你就会这样做)。

因此,确保您只打开相关文件夹中的代码,并且,可能更重要的是,锁定执行此工作的用户。我指的是网络服务器用户。确保它只具有从您正在工作的文件夹中读取的权限,以及其他类似的逻辑操作。

剥离元数据?当然可以,你很有礼貌,但我不会对此发疯的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1485419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档