什么是主要的安全问题接受图片上传时,超出了正常的东西对所有HTTP上传的考虑?
我接受图像上传,然后示出了这些图像的其他用户。
我应该如何验证,例如,上传的图片实际上是一个有效的图像文件? 是否有观众认为是可利用的由畸形的图像文件,我应该关心沿漏洞无意中传递任何已知的漏洞? (快速谷歌搜索似乎表明,曾经在IE5 / 6)。
我应该去除所有图像元数据,以帮助用户防止无意的信息披露? 还是有一些东西是安全的和必要的或有用的允许?
是否有常见的图像格式,可能是安全漏洞的任何神秘的特点是什么?
是否有处理这些问题的任何库? (和/或用相似的转换渐进式JPEG正常的JPEG,下采样标准化尺寸,优化的PNG等其他问题)
臭虫的传播史的图像格式化里面的风险是不是“正是”你的问题,但可以帮助无论如何,通过映射“.JPG”的一般做法以下到您的可执行的语言,并手动处理每个图像(这样你可以做参考检查为好)。
你必须要小心:
- 人们上传的代码为图像(内有实际的C#代码.JPG)
- 任何无效的扩展名(你检查这一点)
- 人们试图做你的路径相关的攻击
最后一个是你有什么需要警惕的,如果你在动态图像阅读(因为你会,如果你按照我的建议的第一位)。
所以,确保你在相关文件夹只开放代码的,而且,可能更重要的是, 锁定,做这项工作的用户 。 我指的是Web服务器的用户。 请确保它仅有权从您工作的文件夹,以及其他类似顺理成章之事阅读 。
剥元数据? 当然,为什么不,这是很客气的你,但我不会迷恋着它。
你最大的风险,是指攻击者尝试某种类型的可执行代码上传到服务器。 如果上传的文件,然后在网络上浏览的,攻击者可能能够导致代码在服务器上运行。 你最好的保护是第一个上传的文件保存到非公开浏览的位置,尝试将其加载在你的编程语言中的图像,并允许它,如果它能够成功地解析为一个图像。 很多时候人们会想调整图片的大小反正所以真正做这是没有额外的工作。 一旦图像被验证,可以将它移动到您的Web服务器的公开浏览的区域。
此外,还要确保你有文件上传大小限制。 大多数平台将在默认情况下有某种限制的到位。 你不想恶意用户用无尽的文件上传填满你的磁盘。
一个我知道的漏洞是一个“WMF后门”。 WMF是“Windows图元文件” - 由Windows GDI库呈现的图形格式。 这里是维基百科的文章 。
攻击者能够向用户机器上执行任意代码。 当用户通过浏览器,包括刚才观看的文件,包括但不限于Internet Explorer,这可能发生。 这个问题被认为是固定的2006年。