我们必须在我们的Web应用程序中实现功能用户配置文件图像上载 . 用户可以上传他的 Profiles 图片 .
上传图像后,它将保存到DB2 DB ..并且它将仅呈现给登录后上载图像的用户 . 技术堆栈 - > J2EE,AIX,DB2 .
我们的安全部门收到一个奇怪的抱怨,因为用户可能会上传病毒而导致服务器感染,因此需要删除此功能!
我不明白用户将如何上传病毒,在一天结束时病毒是一个需要执行的程序,对吧?第二件事是平台是UNIX-AIX ,,,即使用户上传了恶意软件,服务器也不会被感染,对吧?最后一件事,如果JS文件上传而不是图像,用户可能会被XSS感染,但我可以看到这在我们的情况下是无效的,因为只有用户可以上传图像而且它只会被渲染给用户..
我的理解是对的吗?
1 回答
不,实际上可以隐藏图像文件中的可执行代码 . 并且当用户呈现图像时,取决于服务器配置,可以执行图像内的代码 . 例如http://hackaday.com/2014/11/15/hiding-executable-javascript-in-images-that-pass-validation/并在谷歌搜索gif可执行文件,png可执行文件等 .
我已经看到了概念的证据,允许运行像这样的http://www.codeproject.com/Articles/9791/Hiding-EXE-Data-Within-GIF-Data,批处理命令和Linux(甚至rm -fr *),PHP代码等许多其他东西的Windows可执行文件 .
您必须验证图像或确保图像在呈现之前转换为安全格式 .