Если вы когда-либо открывали или выполняли какой-либо загруженный пользователем файл на сервере, вы должны ожидать, что ваш сервер теперь взломан.
Даже JPG может содержать исполняемый файл php. Если вы include
или require
файл каким-либо образом в вашем скрипте, это также может поставить под угрозу ваш сервер. Изображение, на которое вы наткнулись в Интернете, выглядело так ...
header('Content-type: image/jpeg');
header('Content-Disposition: inline; filename="test.jpg"');
echo file_get_contents('/some_image.jpg');
echo '<?php phpinfo(); ?>';
... который вы сохраняете и повторно размещаете на своем собственном сервере, вот так ...
$q = $_GET['q']; // pretend this is sanitized for the moment
header('Content-type: '.mime_content_type($q));
header('Content-Disposition: inline; filename="'.$_GET['q'].'"');
include $q;
... выполнит phpinfo()
на вашем сервере. Пользователи вашего сайта могут просто сохранить изображение на своем рабочем столе и открыть его с помощью блокнота, чтобы увидеть настройки вашего сервера. Простое преобразование файла в другой формат приведет к удалению этого сценария и не должно вызывать фактический вирус, прикрепленный к файлу.
Также может быть лучше выполнить поиск вирусов при загрузке. Вы должны быть в состоянии выполнить встроенную системную команду для проверки и проанализировать ее вывод, чтобы увидеть, если она найдет. В любом случае пользователи вашего сайта должны проверять загружаемые ими файлы.
В противном случае, даже загруженный пользователем вирус, загруженный файл, просто сидящий на вашем сервере, ничего не должен навредить ... насколько я знаю.