SQL-инъекция ломает сайт там, где запросы к БД собраны вручную
Опасность не в «сложном взломе», а в одной строке кода: когда пользовательский ввод попадает в SQL без экранирования и параметров. Особенно часто это случается в формах поиска, логинах, фильтрах, URL-параметрах и админских таблицах с сортировкой.
Защита строится на трех правилах:
— только параметризованные запросы и prepared statements;
— строгая проверка типа и формата данных до обращения к БД;
— минимальные права у учетной записи, от которой работает сайт: без лишних DROP, FILE и доступа к чужим таблицам.
Отдельно проверьте места, где разработчики любят «собирать SQL строкой ради удобства»: ORDER BY, LIMIT, фильтры по нескольким полям, логика с IN (...). Именно там часто забывают про whitelist и дают атакующему управлять частью запроса. Для WordPress это особенно важно в плагинах и кастомных темах, где безопасность зависит не от ядра, а от вашего кода.
Если хотите снизить риск быстро, начните с аудита всех запросов, где в SQL попадает $_GET, $_POST, $_REQUEST и данные из cookie. Уберите конкатенацию, проверьте права БД и закройте все поля, где можно подставить «неожиданный» текст.
Защита WordPress от взломов
@wp_security_guard_ww
SQL-инъекция ломает сайт там, где запросы к БД собраны вручную
Этот пост опубликован в Telegram-канале Защита WordPress от взломов. Подписаться можно по ссылке: @wp_security_guard_ww.