PHP ддос или большое количество запросов.

SodaM

Создатель
Регистрация
6 Мар 2015
Сообщения
25
Реакции
0
Приветствую форумчане.
Недавно столкнулся с такой проблемой.
Сервер,сайт,хостинг падают от больших перегрузок.
Добавлял ip адреса от которых исходило большое количество запросов в бан.
Но данная проблема так и не решилась.
P.s использую windows server 2008 r2
и веб сервер IIS 7.5
xyr3lm4BM2U.jpg
 

Вложения

  • xyr3lm4BM2U.jpg
    xyr3lm4BM2U.jpg
    495,8 KB · Просмотры: 1
Боты есть и будут, их запросы все равно придется обрабатывать
Если у вас популярный ресурс, то лучше задуматься о переезде на более мощную площадку.
Возможно мы не умеем готовить, но мы выкинули тормознутый апач и используем nginx+php-fpm
Далее мы используем этот Для просмотра ссылки Войди или Зарегистрируйся, полет нормальный.
 
Попробуйте установить проксирование вашего сайта через машину с *nix + nginx. Так-же могу порекомендовать настроить Fail2Ban (чтоб происходил автоматический бан из-за Х одинаковых запросов за Y секунд, бан на Z часов)
 
есть еще CloudFlare
если переместиться возможности нет, попробуйте
сервис выступает как прокси, позиционируется в том числе как и хелпер обработки лишних запросов
 
Добавлял ip адреса от которых исходило большое количество запросов в бан.

Загрузи свой сайт в браузере и в консоли разработчика посмотри, что он посылает (залогининым и анонимусом). Запросы такого рода больше похожи на кривонаписанный виджет сайта. Запрос очень уж специфический и интервалы одинаковые и большие. Тем ддосам, которыя я видел было свойственно иное поведение.

Второй шаг хорошо бы добавить логер в эти файлы и посмотреть $_SERVER - там может быть что-то интересное.
 
Попробуйте заблокировать IP не на уровне IIS, а на уровне firewall.
 
Ещё очень помогает правильное кеширование.
Принцип такой: если пользователь не залогинен, то нехрен каждый раз поднимать всю систему, а отдавать из кеша.
Сам кеш обновлять — раз в час или реже.

Поднимаю систему для незарегистрированных в 3 случаях:
1. Попытка регистрации (1 модуль).
2. Попытка отправки письма админу (1 модуль).
3. Кеш истек.
На пп. 1 и 2 также ставится ограничение на число попыток (в секунду, в минуту) и есть капча.
Запросы зарегистрированных пользователей не кешируются.

У меня при переписывании критических мест нагрузка падала в 10-15 раз, сайт работал почти как статика. Ведь из 1,5 тысячи страниц движок реально поднимался только на двух, остальное отдавалось из кеша.

Есть ещё механизм автоматического добавления IP в чёрный список (много попыток за NN времени), но им не пользуюсь. Потому что, во-первых, этого хватает, во-вторых, есть риск забанить Яшу. Такое уже было, кхе-кхе. Как-то Яндекс не всегда корректно следует директиве Crawl-delay, из-за чего его легко можно перепутать со спамером.
 
Последнее редактирование:
1. Если атака идет на какой то конкретный сайт - можно решить через регулярки + запись IP ботов в бан лист.
2. в index.php в начало файла добавить проверку наличия IP в блок листе, если IP найден - exit.

По подробнее опишите ситуацию. предоставьте лог в текстовом формате, а не в виде скрина.

Кто не в курсе, 90% скриптов всех ботов используют один и тот же алгоритм.
Найдите критерии фильтра ботов а засуньте их в регулярку.

Если используете PHP7 - то генераторы Вам в помощь - они не используют ОЗУ (в 5 раз быстрее выполняются, чем любой аналог кода PHP) для хранения базы IP черного списка.
 
Последнее редактирование:
есть скрипт на php, который фиксирует IP и если он часто долбится, то этот IP добавляется автоматом в .htaccess "Deny".
если кому надо могу выложить исходник
 
есть скрипт на php, который фиксирует IP и если он часто долбится, то этот IP добавляется автоматом в .htaccess "Deny".
если кому надо могу выложить исходник
Было бы не плохо. Мне интересно посмотреть на Ваш исходник.
 
Назад
Сверху