Безопасный плагин ломается не там, где вы ждёте: 7 мест для проверки
В WordPress-плагинах уязвимости чаще всего появляются в трёх слоях: входные данные, права доступа и вывод. Если пропустить хотя бы один, даже аккуратный код станет удобной точкой входа.
Проверьте базу:
— все данные из $_POST, $_GET, $_REQUEST проходят sanitize;
— перед изменением данных есть проверка capability;
— nonce используется там, где есть действие, а не просто форма;
— SQL строится через prepare, а не через склейку строк.
Дальше смотрите на вывод. Любой текст, который попадает в админку, шорткод или шаблон, должен экранироваться по месту: esc_html, esc_attr, wp_kses. Иначе безопасный ввод легко превращается в XSS на стороне интерфейса.
Ещё две частые ошибки: хранить секреты в открытом виде и оставлять debug-логи с чувствительными данными. Если код передаётся другому разработчику, ищите не только баги, но и лишние права, старые тестовые хуки и незакрытые точки входа. Такая ревизия экономит больше времени, чем последующий разбор инцидента.
Создание плагинов для WordPress
@plugin_development_pro_ww
Безопасный плагин ломается не там, где вы ждёте: 7 мест для проверки
Этот пост опубликован в Telegram-канале Создание плагинов для WordPress. Подписаться можно по ссылке: @plugin_development_pro_ww.