Сайт недоступен, и первое предположение — атака. Разбираем, как отличить её от других причин и какие меры защиты доступны небольшой компании.
Коротко
- Сначала убедиться, что это атака.
- Защита покупается заранее.
- Хостинг обычно не справляется сам.
- Поисковых роботов блокировать нельзя.
Что это и чем отличается от наплыва
| Признак | Атака |
|---|---|
| Источник трафика | Много адресов без внятной географии |
| Поведение | Одинаковые запросы, без просмотра страниц |
| Начало | Резкое, без причины |
| Совпадение с аналитикой | В Метрике роста нет |
| Целевые адреса | Часто одна страница или поиск по сайту |
Четвёртая строка — самый быстрый способ проверить. Настоящий наплыв посетителей видно в аналитике: если сервер задыхается, а в Метрике обычные цифры, то нагрузку создают не люди. Полезно сравнить с журналами сервера — там видно, что именно запрашивают.
Что путают с атакой
Часто оказывается
- Тяжёлый запрос к базе
- Обновление, которое всё замедлило
- Парсер, который ходит без ограничений
- Сосед по общему хостингу
- Закончилось место на диске
- Упал внешний сервис в коде страницы
Как отличить
- Журналы сервера
- Время начала и что менялось
- Нагрузка по процессам
- Вопрос хостеру
Последняя строка левой колонки встречается чаще, чем атаки. Страница, которая ждёт ответа от внешнего сервиса — карты, чата, рекомендаций, — становится медленной вся, и выглядит это как перегрузка сервера. Проверяется отключением этого блока на время.
Какие меры доступны заранее
| Мера | Что даёт |
|---|---|
| Защита на стороне провайдера | Основная линия |
| Кеширование страниц | Сервер не считает одно и то же |
| Ограничение частоты запросов | Отсекает простые атаки |
| Закрытие тяжёлых страниц от роботов | Поиск по сайту, фильтры |
| Отдельный сервер вместо общего | Сосед вас не роняет |
| Внешняя раздача статики | Разгружает сервер |
Вторая строка помогает и в обычной жизни, и при атаке. Закешированные страницы отдаются без обращения к базе, поэтому сайт выдерживает многократно большую нагрузку — и заодно быстрее работает. Про это в статье про скорость загрузки сайта.
Что делать во время атаки
Сообщить хостеру
У него больше возможностей.
Включить защиту, если куплена
Или подключить срочно.
Включить агрессивное кеширование
Отдавать статику.
Отключить тяжёлые разделы
Поиск, фильтры, выгрузки.
Не блокировать поисковых роботов
Проверить правила.
Записывать, что происходит
Для разбора и для хостера.
Пятый шаг легко нарушить в спешке. Массовые блокировки по признакам «подозрительного» трафика задевают и поисковых роботов: сайт становится недоступен для них, и это отражается на индексировании. Фильтры стоит проверять на том, что роботы проходят.
Что с позициями после недоступности
| Длительность | Что обычно происходит |
|---|---|
| Несколько минут | Как правило, незаметно |
| Часы | Робот вернётся позже |
| Сутки и больше | Возможны проблемы с индексированием |
| Повторяющиеся сбои | Сокращается частота обхода |
Точных порогов я не называю: они не опубликованы и зависят от сайта. Практически важно другое: при недоступности сервер должен отвечать кодом 503, а не показывать ошибку или пустую страницу — так роботу сообщается, что это временно. Про коды — в статье про ошибки 5xx.
По каким признакам выбирать защиту
| Требование | Зачем |
|---|---|
| Включается быстро | Атака не ждёт |
| Не ломает работу сайта | Формы, оплата, личный кабинет |
| Пропускает поисковых роботов | Иначе потеряете индексирование |
| Не требует переезда в момент атаки | Настраивается заранее |
| Показывает, что фильтрует | Иначе не разобраться |
| Понятно, что с персональными данными | Трафик идёт через посредника |
Последняя строка требует отдельного разговора с юристом. Защита работает как посредник между посетителем и вашим сайтом, то есть через неё проходят данные, которые вводят люди: где они обрабатываются и на каких условиях — вопрос, который стоит выяснить до подключения, а не после.
Частые вопросы
Как отличить атаку от наплыва посетителей?
По аналитике и журналам: при настоящем наплыве рост виден в Метрике. Если сервер задыхается, а в Метрике обычные цифры, нагрузку создают не люди.
Что чаще всего принимают за DDoS?
Тяжёлый запрос к базе, неудачное обновление, парсер без ограничений, соседа по общему хостингу, отсутствие места на диске и упавший внешний сервис в коде страницы.
Какие меры помогают заранее?
Защита на стороне провайдера, кеширование страниц, ограничение частоты запросов, закрытие тяжёлых страниц от роботов, отдельный сервер и внешняя раздача статики.
Что нельзя делать во время атаки?
Блокировать трафик так, что под фильтр попадают поисковые роботы. При недоступности сервер должен отвечать кодом 503, а не показывать ошибку.
Сделаем сайт, который приносит заявки
Спроектируем структуру под запросы, соберём и запустим — с учётом SEO с первого дня.
Обсудить разработку