Безопасность кода плагина: 7 мест, где чаще всего прячется дыра
Плагин ломают не только через SQL-инъекции. Чаще всего проблемы начинаются там, где код доверяет данным из формы, URL, REST-запроса или настроек без проверки.
Перед сохранением и выводом держите в голове базовый порядок:
— проверка прав пользователя;
— nonce для действий из админки;
— очистка входящих данных через sanitize_*;
— экранирование вывода через esc_*;
— prepare() для запросов к базе.
Отдельно проверьте загрузку файлов, AJAX-обработчики и кастомные endpoint’ы. Там легко забыть про ограничения по типу данных, размеру и правам доступа. Если метод можно вызвать без экрана админки, он должен быть защищён так же строго, как обычная форма.
Полезная привычка — смотреть на код глазами атакующего: что будет, если отправить пустое значение, строку вместо числа, HTML в поле или чужой ID в запросе. Если ответ «ничего страшного» не подтверждён проверками в коде, значит место надо доработать.
Безопасный плагин — это не один фильтр, а цепочка маленьких проверок. Чем раньше вы начнёте валидировать, очищать и экранировать данные, тем меньше шансов, что баг станет уязвимостью.
Создание плагинов для WordPress
@plugin_development_pro_ww
Безопасность кода плагина: 7 мест, где чаще всего прячется дыра
Этот пост опубликован в Telegram-канале Создание плагинов для WordPress. Подписаться можно по ссылке: @plugin_development_pro_ww.