Защита от Ddos
Одна страница
Распечатать
. Редактировалось 1 раз, последний — #1
На днях мой сайт подвергся нехилой атаке, чем вызвал истерику у Хостинга.
4X_Pro, что бы посоветовал со стороны защиты CMS? Понятно, что что от атаки страдает, в первую очередь сервер, но может, есть какие нибудь методы защиты движка?
А то я почитал в интернете...Какой-то невнятный бубнеж... Ничего конкретного...
4X_Pro, что бы посоветовал со стороны защиты CMS? Понятно, что что от атаки страдает, в первую очередь сервер, но может, есть какие нибудь методы защиты движка?
А то я почитал в интернете...Какой-то невнятный бубнеж... Ничего конкретного...
Всё, что мне известно о PHP-меня научил 4X_Pro
Опрос пользователей о деятельности _1_ http://intbpro.ru/flood/119/
. Редактировалось 1 раз, последний — #2
На уровне CMS можно сделать что-то вроде суммирования времени выполнения запросов с каждого IP-адреса, и если оно превышает какое-то пороговое значение, то прописывать запрет на этот адрес в .htaccess. А каждые 10 или 15 минут обнулять этот счётчик.
То есть делается так: в MySQL — таблица вида ip, duration, last_time, после каждого выполнения скрипта замеряется время и делается update этой таблицы с увеличением duration (UPDATE antiddos SET duration=duration+время_выполнения, last_time = NOW() WHERE ip=IPадрес). И висит отдельный процесс на cron, который периодически (скажем, раз в десять секунд) выбирает ip-адреса, у которых duration слишком большой, и прописывает их в Deny from в файле .htaccess. А для тех IP-адресов, с которых последнее обращение было больше определенного времени назад, счётчик зануляется.
Единственный минус — есть риск, что поисковые боты под это попадут. И ещё нужно учесть, что обращения могут быть как по IPv4, так и по IPv6.
То есть делается так: в MySQL — таблица вида ip, duration, last_time, после каждого выполнения скрипта замеряется время и делается update этой таблицы с увеличением duration (UPDATE antiddos SET duration=duration+время_выполнения, last_time = NOW() WHERE ip=IPадрес). И висит отдельный процесс на cron, который периодически (скажем, раз в десять секунд) выбирает ip-адреса, у которых duration слишком большой, и прописывает их в Deny from в файле .htaccess. А для тех IP-адресов, с которых последнее обращение было больше определенного времени назад, счётчик зануляется.
Единственный минус — есть риск, что поисковые боты под это попадут. И ещё нужно учесть, что обращения могут быть как по IPv4, так и по IPv6.
Критикуя — предлагай, предлагая — обосновывай!
4xpro.ru — мой личный сайт-мультиблог на Intellect Board.
. Редактировалось 1 раз, последний — #3
Хм... Хитро.... Спасибо, я помозгую над скриптом, который будет это делать.
Всё, что мне известно о PHP-меня научил 4X_Pro
Опрос пользователей о деятельности _1_ http://intbpro.ru/flood/119/
Одна страница
Распечатать У вас нет прав для отправки сообщений в эту тему.