Серьезно!? А не надо ничего "показывать", достаточно залить. Да и дамин не проверит картинку на шелл. Она выглядит картинкой. А я вот всем популярным модулям отзывов с возможностью загрузки изображений на сервер, на opencart.com marketplace залил в демо шеллы. Причем не напрягаясь. Притом что я не хакер даже. Все ссылки заливки я предоставил Yoda чтобы не быть голословным. (ну "молодцы" "они", что позволили - может их базой или серваком уже давно "пользуются" в своих целях)
Так что, хотите проблемы ? Не вопрос - разрешите пользователям загружать файлы на сервер и первый же вектор атаки хакеров будет через это "функционал". Причем взломать могут даже безопасный код модуля, через дыры у хостеров (а их хватает)
Для того чтобы разрешать загружать файлы на сервер вам надо отделить этот сервер от других - раз (выделить только под изображения и файлы с отдельным IP и доменом), закрыть все дыры два и следить за сервером. Т е это должен быть выделенный сервер как минимум с профессиональным администрированием
Т.е. мухи отдельно, котлеты отдельно. А когда у вас изображения и код магазина вместе, да еще разрешена загрузка файлов ... это как фарш котлет и мух вместе, туда еще "приправки" из загрузки пользователями цианистого калия и "давайдасвидания" магазину. А если серверы разделены то цианистый калий достанется мухам Вот как делают на больших защищенных проектах где обязательно надо загружать пользователям файлы
К примеру facebook - https://external-amt2-1.xx.fbcdn.net/safe_image.php?d=.....
Как видите изображения не "левом" домене, на левом сервере. Еще и спрятаны "за" скриптом