Типичные промахи в проверке уязвимостей — что реально проверить и как
Сидишь, проверяешь сайт или веб-приложение на уязвимости и часто натыкаешься на одни и те же лажи. Типа запускаешь сканер, получаешь тонну отчетов, не разбираешься в них или просто пропускаешь базовые моменты. Вот пару реально рабочих пунктов, которые лучше всегда иметь в голове и не забывать:
1. Проверяйте не только автоматом. Инструменты — хорошо, но они не поймают всё. Например, XSS лучше искать руками — в тех местах, где ввод пользователя отражается в ответе без фильтрации.
2. Смотрите на конфиги сервера и приложений. Часто проблемы скрываются именно там: старые версии PHP, открытые директории, неправильные настройки CORS — это всё классика.
3. Обязательно проверяйте входные данные: фильтрация, экранирование, длину, типы. Если где-то можно засунуть JS или SQL — там почти гарантирован баг.
4. Контролируйте сессии и куки: убедитесь, что там включён HttpOnly, Secure, и куки не передаются по HTTP. Без этого атакам типа перехвата простая дорога.
5. Не забывайте про права доступа. Часто аплоад происходит с недостаточной проверкой — это подарок для любого, кто хочет загрузить чё-нить вредное.
6. Проверьте логирование и обработку ошибок. Не должно быть подробных стеков и конфиденциальных данных в выводах — это живой клад для нападений.
Чек-лист не полный, но если эти моменты завалите — дальше всё плохо. Кто что ещё добавляет в свою проверку? Или наоборот считает, что что-то из этого — перебор?