CommerCentr
EN
Sign in

Изменить проверку функции upload

#1
Думаю, нужно чуть серьёзнее сделать проверку на загрузку файлов. По-умолчанию проверка стоит только на “<?php”
#2
а все остальное подделывается.

В том-то и дело что <?php мало а последовательность <? может встретиться в коде
#3
Можно ж добавить ещё проверку, скажем, на exec, eval, base64 и т.д.

Так сказать зашиту от доморощенных хацкеров. Сам понимаю, что кто захочет и кому нужно будет найдёт другие пути проникновения
#4
а можно тупо прочитать содержимое комментариев и очистить
найти блок начала комментов
FF FE
следующие длина блока
и заполнить пробелами :)
#5
@SlaSoft что-то я не понял Вашего сообщение) Наверное еще не проснулся)
#6
$content = file_get_contents($this->request->files['file']['tmp_name']);

preg_match('/(<\?php|exec|shell_exec|passthru|eval|base64_encode)/i', $content, $math, PREG_OFFSET_CAPTURE);

if (isset($math) && !empty($math)) {
$json['error'] = $this->language->get('error_filetype');
}


Я у себя в одном проекте такое использую.
#7
OCappLab@SlaSoft что-то я не понял Вашего сообщение) Наверное еще не проснулся)

Как вариант, но
более безопасное решение
загрузить, и .. ресайзнуть, а потом положить в папку, уже прогнанное чрез gd
#8
SlaSoftКак вариант, но
более безопасное решение
загрузить, и .. ресайзнуть, а потом положить в папку, уже прогнанное чрез gd

Речь сейчас идет не про изображения, а про загрузку файлов
Файл: catalog/controller/tool/upload.php
Для изображений, да
SlaSoftресайзнуть, а потом положить в папку, уже прогнанное чрез gd

Вообще четко будет
#9
Добавил в гит доп. проверку, все верно + в список добавил |create_function для контрольного, по ресайзу - да, хотя если учесть доступ к админке, то...
#10
Реализовано, закрываю тему

Anyone can read. To post and vote, sign in.