Сайт лежит, хостинг говорит про превышение лимитов, владелец уверен, что это конкуренты. Иногда так и есть. Но в половине случаев, которые мы разбирали, за "атакой" стоял чужой парсер, забытый скрипт или наплыв реальных посетителей после публикации.
Мы в студии Сайты2.рф разбираем такие ситуации на клиентских сайтах. Ниже - как отличить атаку от нагрузки, что помогает на разных уровнях и что делать в момент, когда сайт уже недоступен.
Сначала диагностика
Прежде чем покупать защиту, нужно понять, что происходит. Открываем логи сервера за период сбоя и смотрим четыре признака.
Распределение по страницам. Реальные посетители ходят по разным адресам. Атака и парсер бьют либо в один адрес, либо перебирают каталог по порядку.
Загрузка статики. Браузер после HTML тянет стили, скрипты, картинки. Бот обычно берёт только HTML. Если запросов к статике нет, это не люди.
Заголовок браузера. Одинаковый у тысяч запросов, устаревший или отсутствующий - признак автоматики.
Адреса источников. Всплеск с одной подсети - это чаще парсер. Тысячи адресов из разных стран с равномерной частотой - это уже похоже на распределённую атаку.
Конверсия. Трафик вырос в двадцать раз, а заявок ноль. Люди так не ведут себя.
Отдельно проверьте очевидное: не начался ли сбой сразу после обновления или правки. Порядок общей диагностики недоступного сайта есть в статье про сайт, который не работает.
Три уровня, на которых можно защищаться
Сетевой. Фильтрация мусорного трафика до того, как он дойдёт до сервера. Здесь работают провайдеры защиты и сами хостинги.
Уровень приложения. Ограничение частоты запросов, кэширование, капча на тяжёлых операциях, закрытие дорогих страниц от ботов. Делается на вашем сайте и сервере.
Организационный. Мониторинг, готовый план действий, контакты хостинга, свежие бэкапы.
Ошибка - надеяться только на первый уровень. Дешёвая атака на уровне приложения (частые запросы к поиску по сайту или к фильтру каталога) выглядит как обычные визиты, и сетевой фильтр её пропустит.
Что помогает на стороне сайта
Кэширование страниц. Самая эффективная мера при наплыве. Если страница отдаётся из кэша, она не грузит базу и не выполняет код. Сайт с полным кэшем выдерживает в десятки раз больший поток.
Ограничение частоты запросов. С одного адреса не больше N обращений в минуту к тяжёлым точкам: поиск, фильтр, форма, вход в админку. Настраивается на уровне сервера.
Капча на дорогих операциях. Не на всех формах подряд, а там, где обработка требует ресурсов: поиск, расчёт, регистрация, восстановление пароля.
Закрытие входа в админку. Ограничение по адресам или дополнительная аутентификация. Перебор паролей часто выглядит как нагрузка.
Отключение лишнего. Точки доступа к API, которые вам не нужны, устаревшие обработчики, страницы с тяжёлыми запросами без кэша.
Оптимизация тяжёлых запросов. Страница, которая делает сто запросов к базе, ляжет от нагрузки, которую нормальный сайт выдержит без усилий. Про работу со скоростью писали в статье про ускорение сайта.
Когда нужен фильтрующий сервис
Внешний сервис защиты пропускает трафик через себя, отсекая мусор, и до вашего сервера доходят только живые посетители. Такой вариант нужен, если:
- атаки повторяются и мешают работе;
- сайт приносит существенную выручку, и простой стоит дороже подписки;
- хостинг блокирует аккаунт при всплесках, и вы теряете сайт целиком;
- атаки идут на уровне приложения, и справиться настройками не удаётся.
Что уточнить при выборе провайдера:
- Где расположены точки фильтрации: для российской аудитории важна близость.
- Работает ли защита приложений, а не только сетевого уровня.
- Как обрабатывается трафик по защищённому протоколу: нужно ли передавать сертификат.
- Есть ли ручная поддержка во время атаки и как быстро она реагирует.
- Что происходит при превышении тарифного объёма трафика.
- Не ухудшает ли фильтрация скорость для обычных посетителей.
Важная деталь: после подключения фильтра надо скрыть реальный адрес сервера. Иначе атака пойдёт мимо защиты. Реальный адрес часто выдают старые DNS-записи, служебные поддомены и заголовки писем, которые отправляет сайт.
Про хостинг
У виртуального хостинга есть жёсткие лимиты на процессы и потребление ресурсов. При наплыве трафика провайдер защищает соседей по серверу, то есть ограничивает ваш сайт. Формально это не атака положила сайт, а лимиты.
Отсюда практический вывод: если сайт значим для бизнеса и подвержен всплескам, отдельный сервер даёт больше свободы. Выбор провайдеров и типов размещения разбирали в статьях про хостинги с серверами в РФ и выбор хостинга.
Парсинг и накрутка: отдельная история
Не всякая нагрузка - атака. Две частые ситуации.
Парсер конкурента. Кто-то собирает ваш каталог с ценами. Нагрузка ощутимая, но цель не в отказе сайта. Лечится ограничением частоты запросов и капчей при подозрительной активности. Полностью закрыться нельзя, но можно сделать сбор неудобным.
Накрутка поведенческих факторов. Боты имитируют поведение посетителей. Кроме нагрузки это ещё и риск для позиций: поисковые системы могут расценить накрутку как нарушение, причём санкции получит ваш сайт. Если видите подозрительный поток из поиска, зафиксируйте данные и обратитесь в поддержку поисковой системы. Про санкции и восстановление писали в статье про снятие фильтра Яндекса.
Что делать во время атаки
Порядок действий, когда сайт уже недоступен.
- Написать в поддержку хостинга. У них видно картину по трафику, и часто они включают фильтрацию на своей стороне.
- Включить полное кэширование страниц, если оно было выключено.
- Ограничить частоту запросов на уровне сервера.
- Временно закрыть тяжёлые точки: поиск, фильтры, тяжёлые расчёты. Лучше сайт без поиска, чем недоступный сайт.
- Собрать данные для разбора: логи, диапазоны адресов, время начала.
- Если атака продолжается, подключать фильтрующий сервис. Технически это смена DNS-записей, изменения вступают в силу в течение времени, заданного в настройках зоны.
- После окончания разобрать причину и оставить те настройки, которые не мешают работе.
Пункт 4 обычно вызывает сопротивление, но именно он даёт быстрый результат: большая часть атак на уровне приложения бьёт в самые тяжёлые точки.
Профилактика: короткий список
- Кэширование включено и реально отдаёт страницы, а не только создаёт файлы.
- Настроено ограничение частоты запросов к тяжёлым точкам.
- Вход в админку защищён дополнительно.
- Есть мониторинг доступности с уведомлением в мессенджер.
- Бэкапы свежие, восстановление проверено.
- Известны контакты поддержки хостинга и порядок обращения.
- Реальный адрес сервера не светится в письмах и DNS-записях, если стоит фильтр.
- Обновления движка и плагинов актуальны: часть нагрузки создают попытки эксплуатации известных уязвимостей. Общий список мер собран в статье про защиту сайта от взлома.
Если сайт периодически падает под нагрузкой и непонятно, атака это или нехватка ресурсов, напишите нам через контакты. По логам обычно видно за пару часов, и решение оказывается дешевле, чем кажется в момент паники.

