Недостаточная фильтрация входных данных в DLE

Краткая памятка о том, как проверить фильтрацию пользовательского ввода в DLE и снизить риск инъекций без изменения логики движка.

Где начинается проблема

Недостаточная фильтрация входных данных означает, что пользовательский ввод из форм, адресной строки или заголовков HTTP попадает в запросы к базе или в вывод без должной проверки. В DLE это чаще всего касается полей поиска, комментариев и пользовательских модулей, которые сами собирают данные. Если скрипт передаёт такие значения напрямую в SQL или в HTML без экранирования, открывается путь для инъекций и XSS.

Практические шаги проверки

Начните с перечня всех форм и обработчиков, которые принимают данные от посетителя. Для каждого поля определите, как оно используется дальше: попадает ли в запрос, в шаблон или в файл. Затем проверьте, применяется ли экранирование на этапе вывода и параметризация на этапе запроса. Если модуль сторонний, сравните его исходный код с текущей версией движка и обратите внимание на функции обработки строк.