Причем value - это кусок SQL запроса. Он считывается из сессии и прибавляется к основному запросу.
Прям идеальная дырень для SQL инъекции подумал я, полез в сессии хрома, но там только PHPSESSID. А этой записи нет. Но она работает. Как так? Сессии с нижним подчеркиванием браузер скрывает, или такие записи как то хранятся только на стороне сервера?
Neoline: надо будет проверить. Но я точно знаю, что в PHP есть возможность запрещать для исполнения отдельные функции. Кроме того, чтобы это сделать, надо получить доступ исполнить PHP код. Пока злоумышленник не зальёт шелл - у него ничего не выйдет.
А если есть шелл - можно наверное и ещё проще файлы сессий слить. Кроме того, возможность залить шелл - это уже дырявый код (в данном случае к авторам CMS вопрос), и криво настроенный хостинг, опять же.
Neoline: ну вот здесь как раз не соглашусь, гадость подцепить шанс равен почти нулю. Каким образом?
Грамотно настроенный сервер не даст исполнить ничего из директории загрузок, это раз. Проверка типа загружаемого файла - это два (в случае с картинками - чтение MIME, попробовать её поресайзить, плюс опять же, веб-сервер не даст исполнить картинку как скрипт). Более сложные файлы - тестить на вирусы умными модулями, если сложность системы того требует (но в любом случае, никакие веб-скрипты не пропускать).
Про изолирование процесса веб-сервера - слышал немного, но не очень разбираюсь. Да, думаю, от чего-то поможет. Хотя если шелл удастся запустить как системный UNIX процесс - тут уже ничего не поможет... А дать команду на запуск, например, через PHP-скрипт, залитый нами же. Но мы же скрипты блокируем, верно?)
Про "запретить выполнение вообще php-кода из htaccess" - ну так кто же нам как злоумышленнику даст грузить htaccess, или модифицировать уже имеющийся? Опять утопия :)
Если злоумышленник работает в компании-вебхостере, и имеет доступ ко всем файлам - тут опять же, снявши голову по волосам не плачут.