Проверка сайта на уязвимости: что можно проверить самому
Содержание · 8

Самостоятельная проверка сайта на уязвимости закрывает «базовую гигиену»: версии CMS и плагинов, заголовки безопасности, открытые служебные файлы, сертификат, права доступа и пароли. На это хватает одного часа и бесплатных инструментов. Глубокие проверки (подбор логики приложения, нагрузочные и инъекционные тесты) делает аудитор по договору, потому что без согласования такие проверки могут навредить сайту и нарушить закон.
Границы: что можно, а что нельзя
Проверять вы вправе свои сайты и системы, к которым у вас есть доступ. Активное сканирование чужого или арендованного ресурса (например, общего хостинга) без разрешения владельца может нарушить условия хостинга, а при ущербе и закон. Если сайт делал подрядчик и размещён на его сервере, согласуйте проверку заранее.
Чек-лист на час
| Что проверить | Как | Хороший результат |
|---|---|---|
| Версия CMS, плагинов, темы | Админка → обновления; проверка уязвимостей CMS | Нет обновлений безопасности в ожидании |
| Версия PHP | Информация о системе или панель хостинга | Версия, для которой выпускаются исправления: PHP на хостинге |
| HTTPS и сертификат | Проверка SSL | Действует, цепочка полная, нет mixed content |
| Заголовки безопасности | securityheaders.com, генератор CSP | Есть HSTS, X-Content-Type-Options, политика CSP |
| Служебные файлы | Откройте /.git/, /.env, /backup.zip, /phpinfo.php в браузере | 404 или 403, а не содержимое |
| Список файлов в папках | Откройте адрес папки загрузок | Нет списка файлов: Index of |
| Админка | Адрес и защита входа | 2FA, ограничение попыток входа, нет стандартного admin/admin |
| Пароли и доступы | Список учёток в CMS, FTP, панели | Нет лишних, у всех сильные пароли: пароли сотрудников |
| Резервные копии | Восстановите копию на тестовом сервере | Копия не лежит в открытом виде на том же сайте |
Как делать по шагам
- Составьте список: домены, поддомены, CMS, плагины, хостинг, кто имеет доступ.
- Обновите всё, что имеет исправления безопасности. Перед этим сделайте резервную копию и проверьте её восстановление.
- Удалите то, чем не пользуетесь: старые плагины, тестовые поддомены, забытые копии сайта. Нет компонента — нет уязвимости.
- Проверьте заголовки безопасности и сертификат бесплатными сервисами.
- Убедитесь, что служебные файлы и папки не отдаются по прямой ссылке.
- Включите двухфакторную аутентификацию для админки и хостинга.
- Запишите результаты и дату. Повторяйте раз в квартал и после каждого крупного обновления.
Бесплатные сканеры: чему можно доверять
Автоматические сканеры вроде OWASP ZAP в пассивном режиме или Mozilla Observatory показывают очевидные недочёты: отсутствие заголовков, устаревшие библиотеки, ошибки cookie. Относитесь к отчёту как к списку вопросов, а не приговору. Сканер выдаёт и ложные срабатывания, и пропускает логические ошибки: например, возможность увидеть чужой заказ, изменив номер в адресе.
Запускайте активный режим сканера только на тестовой копии сайта. Рабочий сайт может отреагировать как на атаку: блокировкой, нагрузкой или заполнением базы тестовыми записями.
Когда нужен аудит или пентест
- сайт принимает оплату, хранит персональные данные или работает с личными кабинетами;
- вы обязаны подтверждать защиту клиентам или регулятору;
- в сайте есть своя разработка: формы, API, интеграции, выгрузки;
- самопроверка нашла серьёзные проблемы, а причину вы не понимаете;
- были взлом, утечка или подозрительная активность.
Что именно проверяют специалисты и как подготовиться, мы разобрали в статьях аудит безопасности сайта и пентест сайта. Заказать проверку можно на странице аудита сайта, там указана стоимость.
Если уязвимость нашёл посторонний
Как читать результаты и что исправлять первым
После проверки у вас появится список замечаний, и браться за все сразу не нужно. Расставьте приоритет по двум вопросам: насколько легко этим воспользоваться и что будет, если воспользуются. Открытая резервная копия с базой клиентов или устаревшая CMS с известной дырой важнее отсутствия одного заголовка.
| Приоритет | Примеры | Срок |
|---|---|---|
| Срочно | Доступные по ссылке дампы базы, устаревшая CMS с известной уязвимостью, слабые пароли админов, нет 2FA на хостинге | В течение дня |
| Скоро | Отсутствие HSTS и CSP, устаревший PHP, лишние плагины, нет логирования входов | В течение недели |
| Планово | Тонкая настройка заголовков, чистка старых поддоменов, обучение сотрудников | В течение квартала |
Зафиксируйте, что исправили, и повторно проверьте. Нередко после обновления одна проблема уходит, а другая появляется: например, меняются права на файлы или сбрасывается конфигурация.
Исследователи иногда сообщают о проблемах сайта сами. Чтобы такие письма не терялись, опубликуйте контакт по стандарту: security.txt. Отвечайте спокойно и без угроз: чаще всего это бесплатная подсказка.
Вопросы и ответы
Можно ли проверить свой сайт на уязвимости бесплатно?
Да. Версии CMS, заголовки безопасности, сертификат и открытые служебные файлы проверяются бесплатными инструментами за час. Логику приложения и защиту данных так проверить нельзя.
Безопасно ли запускать сканер на рабочем сайте?
Пассивные проверки безопасны. Активные тесты запускайте на копии: они могут создать нагрузку и тестовые данные. Для чужого и арендованного сервера нужно согласие владельца.
Как часто проверять сайт?
Минимум раз в квартал и после обновления CMS, смены хостинга или добавления новых модулей. Мониторинг доступности и срока сертификата должен работать постоянно.
Чем отличаются проверка на уязвимости и пентест?
Проверка ищет известные слабости автоматически и по списку. Пентест имитирует действия атакующего по согласованному плану и проверяет, можно ли ими воспользоваться.
Читайте также
Волна уязвимостей в пограничных устройствах: что проверить
НовостиDocker Hub: двухлетняя уязвимость с токенами, что проверить
БезопасностьКак проверить сайт на вирусы: онлайн-сканеры и ручная проверка
БезопасностьАудит безопасности сайта: что проверяют и как подготовиться
БезопасностьPHP2Shell: критическая уязвимость PHP. Что случилось и что делать владельцу сайта
БезопасностьКак проверить версию PHP и закрыта ли PHP2Shell: php -v, журнал пакетов, службы