除了所有HTTP上传的正常内容之外,接受图像上传时需要考虑的主要安全问题是什么?
我正在接受图片上传,然后将这些图片展示给其他用户。
例如,我应该如何验证上传的图像实际上是一个有效的图像文件?在查看器中是否有任何已知的漏洞可被格式错误的图像文件利用,对于这些文件,我应该关注意外传递的漏洞?(快速搜索一下似乎显示IE5/6中曾经有过。)
我是否应该剥离所有图像元数据,以帮助用户防止无意中的信息泄露?或者,是否有一些安全、必要或有用的东西可以允许?
常见图像格式中有没有可能存在安全漏洞的神秘功能?
有没有处理这些问题的库?(和/或其他问题,如将渐进式JPEG转换为普通JPEG、向下采样以标准化大小、优化PNG等)
发布于 2009-09-28 04:48:27
我最近从web security video学到的一些东西
发布于 2009-09-28 04:36:45
您最大的风险是攻击者试图将某种类型的可执行代码上传到您的服务器。如果上载的文件随后可在web上浏览,则攻击者可能会使代码在您的服务器上运行。您最好的保护措施是首先将上传的文件保存到不可公开浏览的位置,尝试将其作为图像加载到您的编程语言中,如果可以将其成功解析为图像,则允许加载。很多时候,人们无论如何都会想要调整图像的大小,所以真正这样做并不是额外的工作。验证图像后,您可以将其移动到web服务器的公共可浏览区域。
此外,请确保您对文件上传大小有限制。默认情况下,大多数平台都会有某种限制。您不希望恶意用户通过无休止的文件上传来填满您的磁盘。
发布于 2009-09-28 04:46:42
在图像格式化程序中传播bug的风险并不是您的问题,但是您可以通过遵循将".jpg“映射到您的可执行语言的一般实践,并手动处理每个图像(通过这种方式,您也可以执行引用检查)来提供帮助。
您需要注意以下事项:
最后一个是你需要注意的,如果你在动态阅读图片(如果你遵循我的第一点建议,你就会这样做)。
因此,确保您只打开相关文件夹中的代码,并且,可能更重要的是,锁定执行此工作的用户。我指的是网络服务器用户。确保它只具有从您正在工作的文件夹中读取的权限,以及其他类似的逻辑操作。
剥离元数据?当然可以,你很有礼貌,但我不会对此发疯的。
https://stackoverflow.com/questions/1485419
复制相似问题