Безопасность кода плагина: 7 мест, где чаще всего прячутся дыры
В WordPress-плагинах уязвимости обычно появляются не в «сложной логике», а в типовых местах: формы, AJAX, REST, загрузка файлов, запросы к БД. Если проверять только бизнес-логику, можно пропустить самое опасное.
Смотрите на код по этому чек-листу:
• все входные данные проходят валидацию и sanitization;
• для действий, меняющих данные, есть nonce и проверка прав;
• SQL строится через prepare, а не через склейку строк;
• вывод в HTML экранируется по контексту;
• файлы нельзя загрузить туда, где их можно исполнить;
• AJAX и REST не открыты «для всех» без необходимости;
• секреты, токены и ключи не лежат в коде в открытом виде.
Отдельно проверьте места, где данные переходят между контекстами: из формы в БД, из БД в шаблон, из запроса в админку. Именно там чаще всего забывают про escape, и один пропущенный вызов превращается в XSS или SQL-инъекцию.
Полезная привычка: перед релизом проходить плагин не по файлам, а по сценариям атаки — «что будет, если сюда пришлют мусор, чужой ID или HTML». Такой просмотр ловит больше ошибок, чем поверхностный код-ревью.
Создание плагинов для WordPress
@plugin_development_pro_ww
Безопасность кода плагина: 7 мест, где чаще всего прячутся дыры
Этот пост опубликован в Telegram-канале Создание плагинов для WordPress. Подписаться можно по ссылке: @plugin_development_pro_ww.