opium
@opium
Просто люблю качественно работать

Можно ли на уровне apache или php запретить upload любых не картинок?

Есть на сайте форма заливки картинок, в неё я могу залить php файл ну и получить шел или ещё чего.
Как бы это дело ограничить в конфиге apache или php.
Код заливки уже переписал, но мало ли чего программисты напишут.
Из путей найден пока что только запрет выполнения php в папках аплоуда.
Код php для определения расширения и прочие фичи я знаю, интересует решение на уровне конфига apache или php.
  • Вопрос задан
  • 4171 просмотр
Пригласить эксперта
Ответы на вопрос 4
@Vampiro
Единственный 100% способ, это делать ресайз картинки из исходного размера в исходный, убирая из нее всю «мета» информацию, а лучше меняя даже формат. Чтобы не заливали bmp/tiff :)

Я положу в jpg-meta "Creator="<? exec('rm -rf ../'); ?> и это будет нормальная картинка, которая пройдет все ваши фильтры…
А потом через дыру в инклудах каких-нить приинклудю эту картинку. И мне не критично — какое у нее будет расширение, как ее переименовали и какие у нее права. Достаточно только на чтение.
Ответ написан
DobroFenix
@DobroFenix
getimagesize(); или is_image();
Ответ написан
shanker
@shanker
Не совсем то, что Вы ищите. И не уверен, что сработает. Но если речь идёт о линуксовом сервере — можно попробовать права папке поставить на запись и чтение. И наследовать права файлам внутри папки.

Помнится, у меня частенько с арендованными у хостера веб-серверами была проблема выполнения скриптов, пока скриптам и папке не выставлял права на выполнение
Ответ написан
foxmuldercp
@foxmuldercp
Системный администратор, программист, фотограф
это скорее в сторону просмотра mime информации и если нет сигнатур jpeg/gif/tiff/png/etc — блокировать.
Я бы попробовал получать от клиента первые апур килобайт файла. проверять есть ли там нужная сигнатура и в зависимости от того, или получать весь файл или прощаться с пользователем.
банально по тому что мне никто не запрещает переименовать exe -> jpeg и попробовать подсунуть это загрузчику и использовать потом ссылку для распространения всякого шлака, например
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы