Чек-лист безопасности веб-приложения
Практичный чек-лист, не привязанный к конкретному вендору, для всех, кто выпускает веб-приложение: пишешь ли ты каждую строку сам или собрал его промптами ("vibe coding"). ИИ пишет код, который проходит happy path, и всё равно оставляет реальные дыры, поэтому работающая фича ещё ничего не доказывает о безопасности. Этот чек-лист - то, что стоит реально проверить до и после запуска.
Он организован по категориям. Начинай с любой или проходи по порядку. Каждая страница содержит конкретные проверки: что тестировать, зачем это нужно и как исправить.
Как пользоваться
- Относись к каждому пункту как к тесту, а не как к тексту для чтения. Попробуй атаку, затем убедись, что исправление работает.
- Тестируй с некорректными данными и под другим пользователем, а не только в обычном сценарии.
- Когда код выглядит правильно, запусти сканирование развёрнутого URL, чтобы поймать то, что сломалось между правками.
Категории
- Аутентификация и сессии: как люди доказывают, кто они, и как ты держишь их в системе, не давая украсть токен.
- Авторизация и контроль доступа: гарантия, что вошедший пользователь не может читать или менять чужие данные (IDOR, мультитенантность).
- Валидация входных данных и инъекции: SQL-инъекции, XSS, SSRF, небезопасная десериализация и загрузка файлов.
- API и запросы: CSRF, CORS, mass assignment и атаки на форму запросов.
- Секреты и защита данных: ключи, шифрование при хранении и при передаче, персональные данные и права на данные.
- Доступность и злоупотребления: rate limiting, отказ в обслуживании и неконтролируемое потребление ресурсов.
- Инфраструктура и деплой: порты и файрволы, контейнеры, заголовки безопасности, TLS и открытые админ-панели.
- Зависимости, логирование и процессы: цепочка поставок, секреты в git, обработка ошибок, мониторинг и независимое тестирование.
Короткая версия
Если у тебя есть только час, проверь сначала эти пять пунктов. Это самые частые и самые разрушительные находки в реальных аудитах:
- Нарушенный контроль доступа. Войди как пользователь A и запроси объект пользователя B по id. Если он вернулся, у тебя дыра. См. авторизацию.
- Секреты в клиенте или в git. Прогони grep по бандлу браузера и репозиторию на наличие ключей. Всё, что закоммичено, скомпрометировано. См. секреты.
- Нет rate limiting на входе. Перебор без него тривиален. См. доступность.
- Нет защиты от CSRF или login-CSRF. См. API и запросы.
- Порты открыты мимо файрвола. Контейнеры часто публикуют порты в обход файрвола. См. инфраструктуру.
Этот чек-лист публикует команда Arc OS. Мы сами держим свой продукт по нему, и ты можешь использовать его для своего. Это стартовая база, а не сертификация, и он не заменяет независимый пентест.