你应该做的事情并加以考虑.
确保您的邮件服务器配置为进行病毒扫描,并使其保持最新.那将是第一道防线.
当电子邮件进入时,尝试在已知的坚如磐石的库中处理图像.
请注意,许多电子邮件包含多个图像,其中一些图像可能与它们发送的图像没有任何关系.例如,我们公司的电子邮件都包含底部的徽标.我不确定这里的解决方案是什么,但你会想要考虑它.
不同的电子邮件客户端处理图像附件,不同.有时它是一种正常的附着物,有时它嵌入体内.即使在同一客户端内,图像的处理方式也可能不同,具体取决于他们是否将电子邮件作为带有附件或HTML邮件的plaint文本发送.
人们会测试你的系统.他们会发送.js文件,他们会发送标题被插入的图像,以便溢出图像处理库...
请考虑强制执行某些电子邮件限制,例如SPF检查.
准备接收绝对巨大的图像.今天的相机拍摄非常大的照片,很多人不知道什么作物或调整大小意味着什么.您可以考虑为每台进入服务器的电子邮件设置15MB或更大的上限.然后,与上面的#2结合使用,可以将图像自动调整大小,使其更加可接受.
确定您实际想要用于通知用户任何问题的机制.请记住,这种机制可能会被滥用.例如,考虑发送到您的计算机的垃圾邮件,其中回复标题将发送给受害者.
如果您使用的是.net,请参阅此方法以确认文件是否为图像:如何确定文件是否为.NET中的图像文件?
我不是说这是100%安全的(你可以100%安全吗?)但是你可以试试这里:
假设您在postfix(或任何邮件系统)上有一个别名,它将传入的电子邮件重定向到php/bash/python脚本以进行进一步处理.
我要做的第一件事是使用图像处理库(比如imagemagick)并将所有传入的文件转换为.png格式或其他任何内容,并且只有在转换成功时才继续使用您的逻辑.
这样,如果有人向您发送任何恶意附件(php exploit,jar's,swf's,any),转换将失败,因此您的系统将忽略它.
编辑:ImageMagick具有"识别"命令,它完全符合您的要求.