2016-04-18 5 views
0

мы должны реализовать профиль профиля пользователя Загрузка изображения в нашем веб-приложении. пользователь может загрузить изображение своего профиля.Загрузка изображения Безопасность - профиль пользователя

после загрузки изображения он будет сохранен в DB2 DB .. и будет отображаться только пользователю, загрузившему изображение после входа в систему. Технологический стек -> J2EE, AIX, DB2.

у нас возникла странная жалоба нашего отдела безопасности на то, что эту функцию нужно удалить, поскольку пользователь может загрузить вирус, и это заразит сервер!

Я не понимаю, как пользователь загрузит вирус, в конце концов, вирус - это программа, которая должна быть выполнена, правильно? Вторая вещь - платформа UNIX-AIX ,,, даже если пользователь загрузил вредоносное ПО, сервер не будет заражен, верно? Последнее, что есть вероятность, что пользователь будет заражен XSS в случае, если файл JS загружен вместо изображения, но я вижу, что это в нашем случае недействительно, потому что только пользователь может загрузить изображение, и он будет отображаться только пользователю ..

Я понимаю, что это правильно?

+0

какая загрузка изображения вы используете? – RussellHarrower

ответ

0

Нет, на самом деле можно скрыть исполняемый код в файлах изображений. И когда пользователь отображает изображение, в зависимости от конфигурации сервера может быть возможно, что код внутри изображения может быть выполнен. Смотрите, например 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 (даже ют - fr *), php-код и многие другие.

Вам необходимо либо проверить изображение, либо убедиться, что изображение преобразуется в безопасный формат, прежде чем он будет отображаться.

+0

1) это изображение профиля пользователя, поэтому я не ожидаю, что пользователь загрузит и выполнит файл, чтобы повредить его машину. потому что это будет сделано только для него. 2) технология j2ee не php, это будет иметь значение. Думаю, 3) вы упомянули, что нам нужно проверить изображение или убедиться, что изображение преобразуется в безопасный формат, прежде чем он будет отображаться, как это сделать? – user1511524

+0

1. Файл не создан специально для того, чтобы причинить вред его машине, файл может быть, например, для масштабирования привилегий или выполнения чего-либо на сервере. 2. Нет, это не имеет никакого значения. java также выполняется на стороне сервера. Это ссылки, которые вы можете проверить, чтобы проверить, что это возможно с окнами и javascript, но это не значит, что нельзя использовать ту же технику для достижения аналогичных целей в unix/ruby ​​/ asp.net/java2ee/ 3 Самый простой способ - загрузить библиотеку изображений, в которой уже есть эта штука, или узнать, как обращаться с содержимым изображений и делать рендер. – bns

Смежные вопросы