SQL-инъекции ломают WordPress там, где запросы собраны руками
Ошибка почти всегда одна: данные из формы, URL или cookie попадают в SQL без экранирования и без prepared statements. Хакеру не нужен доступ к админке — достаточно найти поле поиска, фильтр, комментарии или любой endpoint, где запрос строится строкой.
Что проверять в коде и плагинах:
— используются ли $wpdb->prepare() и параметризованные запросы;
— нет ли конкатенации SQL через . $_GET['...'] или . $_POST['...'];
— валидируются ли типы: число должно стать числом, список — только из whitelist;
— закрыты ли debug-выводы, которые показывают текст запроса и ошибки БД. 🔒
На стороне защиты важны не только патчи: ограничьте права DB-пользователя, отключите лишние SQL-ошибки на экране, следите за необычными запросами в логах и не ставьте плагины, которые пишут в базу “как есть”. Если модуль не объясняет, как он безопасно формирует SQL, это повод для ревизии.
Главное правило простое: любая внешняя строка считается вредной, пока не доказано обратное. Проверяйте входные данные, используйте подготовленные запросы и не давайте коду собирать SQL вручную.
Защита WordPress от взломов
@wp_security_guard_ww
SQL-инъекции ломают WordPress там, где запросы собраны руками
Этот пост опубликован в Telegram-канале Защита WordPress от взломов. Подписаться можно по ссылке: @wp_security_guard_ww.