Чеклист веб-безопасности: комплексное руководство по безопасности
Чеклист веб-безопасности охватывает необходимые меры для защиты вашего сайта от распространённых угроз безопасности. Это руководство охватывает OWASP Top 10, заголовки безопасности и лучшие практики.
Обновлено:OWASP Top 10
1. Broken Access Control: отсутствуют контроли авторизации. Пользователи могут получать доступ к ресурсам, на которые не авторизованы.
2. Cryptographic Failures: чувствительные данные не зашифрованы или используется слабое шифрование.
3. Injection: SQL, NoSQL, OS, LDAP инъекция. Когда пользовательский ввод напрямую добавляется в запрос.
4. Insecure Design: дизайн с уязвимостями безопасности. Не проведён threat modeling.
5. Security Misconfiguration: настройки по умолчанию, открытый режим отладки, отсутствующие заголовки безопасности.
6. Vulnerable Components: сторонние библиотеки с уязвимостями безопасности. Устаревшие зависимости.
7. Authentication Failures: слабая политика паролей, ошибки управления сессиями, нет защиты от brute force.
8. Software and Data Integrity Failures: безопасность CI/CD pipeline, целостность зависимостей, небезопасная десериализация.
9. Security Logging Failures: недостаточное логирование, нет мониторинга, нет плана реагирования на инциденты.
10. SSRF (Server-Side Request Forgery): сервер делает запрос к URL, контролируемому злоумышленником.
Заголовки безопасности
CSP усиливает защиту; unsafe-inline может её ослабить. Используйте nonce или хеши для необходимых скриптов.
Strict-Transport-Security (HSTS): говорит браузеру подключаться только через HTTPS. max-age=31536000; includeSubDomains; preload.
X-Content-Type-Options: значение nosniff отключает MIME type sniffing.
X-Frame-Options: DENY или SAMEORIGIN. Предотвращает отображение страницы в iframe (clickjacking).
Referrer-Policy: strict-origin-when-cross-origin. Контролирует информацию referrer.
Permissions-Policy: контролирует функции браузера, такие как камера, микрофон, геолокация.
Аутентификация и авторизация
Политика паролей: минимум 8 символов, заглавные/строчные, цифра, специальный символ. Хеширование паролей (bcrypt, Argon2).
Многофакторная аутентификация (MFA): обязательная 2FA или MFA. TOTP (Google Authenticator), SMS, аппаратный ключ (YubiKey).
Управление сессиями: cookies Secure, HttpOnly, SameSite. Таймаут сессии, лимит одновременных сессий.
JWT: короткоживущий access token (15 мин) + долгоживущий refresh token (7 дней). Ротация токенов.
OAuth 2.0 / OpenID Connect: сторонняя аутентификация. Вход через Google, GitHub, Apple.
RBAC: Role-Based Access Control. Роли пользователей и разрешения. Принцип наименьших привилегий.
Валидация и санитизация ввода
Серверная валидация: валидируйте все входные данные на сервере. Клиентская валидация недостаточна.
Предотвращение SQL-инъекций: используйте параметризованные запросы / prepared statements. ORM (Prisma, SQLAlchemy) обеспечивают автоматическую защиту.
Предотвращение XSS: кодирование вывода. Автоматическое экранирование React/Vue. textContent вместо innerHTML.
Предотвращение CSRF: CSRF-токены. Атрибут cookie SameSite. Паттерн double submit cookie.
Безопасность загрузки файлов: контроль типа и размера файла. Не давайте права на выполнение в директории загрузки. Сканирование на вирусы.
Мониторинг и реагирование на безопасность
Логирование: логируйте все события аутентификации, авторизации и ошибок. Централизованное логирование (ELK, Loki).
Мониторинг: обнаружение аномалий. Неудачные попытки входа, необычные паттерны трафика, всплески частоты ошибок.
План реагирования на инциденты: планируйте, как реагировать на инциденты безопасности. Runbooks, пути эскалации.
Сканирование уязвимостей: регулярное сканирование безопасности. OWASP ZAP, Burp Suite, Snyk.
Тестирование на проникновение: профессиональное тестирование на проникновение не реже одного раза в год. Отчёт о находках и план исправления.
Чеклист безопасности
✓ HTTPS активен на всех страницах
✓ Заголовки безопасности (CSP, HSTS, X-Content-Type-Options, X-Frame-Options) настроены
✓ Валидация ввода применена на всех эндпоинтах
✓ Защита от SQL-инъекций (параметризованные запросы)
✓ Защита от XSS (кодирование вывода, CSP)
✓ Защита от CSRF (токены, cookies SameSite)
✓ Аутентификация (MFA, сильная политика паролей)
✓ Авторизация (RBAC, наименьшие привилегии)
✓ Безопасность зависимостей (npm audit, Snyk)
✓ Логирование и мониторинг активны
✓ План резервного копирования и восстановления после сбоев
✓ План реагирования на инциденты
Связанные инструменты
Пошаговые руководства
Практические статьи по теме
Руководство по PWA (Progressive Web Apps): превращение веб-приложений в мобильные
PWA (Progressive Web Apps) превращают веб-сайты в приложения, работающие как мобильные, доступные офлайн и добавляемые на главный…
Руководство по email-маркетингу: кампании, автоматизация и доставляемость
Email-маркетинг — один из каналов цифрового маркетинга с самым высоким ROI (возвратом на инвестиции).