SQL-инъекция ломает не сайт, а доверие к его данным — защита строится заранее
SQL-инъекция появляется там, где запрос к базе собирают из чужого ввода без фильтрации. Опасны формы, поиск, фильтры, параметры в URL, AJAX-методы и любые поля, которые потом попадают в SQL.
Что должно быть по умолчанию:
• параметризованные запросы или подготовленные выражения;
• экранирование только как дополнительный слой, а не основная защита;
• проверка типа данных: число, строка, список допустимых значений;
• принцип минимальных прав у пользователя базы;
• отдельная обработка ошибок без вывода SQL-текста на экран.
Типовая ошибка — доверять sanitize_text_field() как универсальной защите. Эта функция не делает запрос безопасным сама по себе: она лишь чистит строку, но не заменяет подготовленный запрос. Если данные потом вставляются в SQL конкатенацией, уязвимость остаётся.
Проверяйте и расширения, и кастомный код: даже один небезопасный фильтр, импорт или поиск по метаполям может открыть доступ к таблицам. Особенно осторожно относитесь к самописным админ-страницам и AJAX-обработчикам 🔒
Если запрос можно собрать из внешнего ввода, считайте его опасным до момента, пока он не переведён на подготовленные выражения и строгую валидацию.
Защита WordPress от взломов
@wp_security_guard_ww
SQL-инъекция ломает не сайт, а доверие к его данным — защита строится заранее
Этот пост опубликован в Telegram-канале Защита WordPress от взломов. Подписаться можно по ссылке: @wp_security_guard_ww.