• Форум посвящен самостоятельной (бесплатной) защите от ддос атак.
    Есть мануалы по настройке сервера от Ddos для сисадминов и готовые инструменты от ддос-атак для вебмастеров.

    Простое, эффективное, точное и проверенное бесплатное решение от мощных ддос-атак: PHP скрипт + Cloudflare, с панелью управления.

Защита от DDoS с помощью Cookies в Nginx

admin

admin

Администратор
Администрация
#1
Работает у клиентов с включёнными Cookies, а без них работает кэш Nginx!
Притормозите поисковых роботов чтобы они открывали страницы сайта не чаще чем 1 страницу в 2 секунды!
Это настраивается в robots.txt, а у робота Google в инструментах для веб-мастеров.
Можно настроить время ожидания после каждой загруженной страницы под себя.
И поставить нужное количество раз после которых наш клиент будет заблокирован на определённое время.
Время указано в секундах.

Код:
location ~ \.php5$ {


# DJ-X Анти DDOS
  if ($http_cookie ~* "DJ-P=4"){
    return 444;
  }

add_header Set-Cookie "DJ-X=ON;Path=/;Max-Age=+900"; 
  if ($http_cookie ~ "DJ-X=ON"){
 add_header Set-Cookie "DJ-XXL=1;Path=/;Max-Age=+1";   
  }
  if ($http_cookie ~ "DJ-XXL=1"){
 add_header Set-Cookie "DJ-XXL=2;Path=/;Max-Age=+1";   
  }
  if ($http_cookie ~ "DJ-XXL=2"){
 add_header Set-Cookie "DJ-XXL=3;Path=/;Max-Age=+1";   
  }
  if ($http_cookie ~ "DJ-XXL=3"){
 add_header Set-Cookie "DJ-XXL=4;Path=/;Max-Age=+1";   
  }
  if ($http_cookie ~ "DJ-XXL=4"){
 add_header Set-Cookie "DJ-XXL=5;Path=/;Max-Age=+1";   
  }
  if ($http_cookie ~ "DJ-XXL=5"){
 add_header Set-Cookie "DJ-XXL=6;Path=/;Max-Age=+1";   
  }
  if ($http_cookie ~ "DJ-XXL=6"){
 add_header Set-Cookie "DJ-XXL=7;Path=/;Max-Age=+1";   
  }
  if ($http_cookie ~ "DJ-XXL=7"){
 add_header Set-Cookie "DJ-XXL=8;Path=/;Max-Age=+1";   
  }
  if ($http_cookie ~ "DJ-XXL=8"){
 add_header Set-Cookie "DJ-XXL=9;Path=/;Max-Age=+1";   
  }
  if ($http_cookie ~ "DJ-XXL=9"){
 add_header Set-Cookie "DJ-XXL=10;Path=/;Max-Age=+1";   
  }
  if ($http_cookie ~ "DJ-XXL=10"){
 add_header Set-Cookie "DJ-XXL=11;Path=/;Max-Age=+1";   
  }
  if ($http_cookie ~ "DJ-XXL=11"){
 add_header Set-Cookie "DJ-XXL=12;Path=/;Max-Age=+1";   
  }
  if ($http_cookie ~ "DJ-XXL=12"){
 add_header Set-Cookie "DJ-XXL=13;Path=/;Max-Age=+1";   
  }
  if ($http_cookie ~ "DJ-XXL=13"){
 add_header Set-Cookie "DJ-XXL=14;Path=/;Max-Age=+1";   
  }
  if ($http_cookie ~ "DJ-XXL=14"){
 add_header Set-Cookie "DJ-XXL=15;Path=/;Max-Age=+1";   
  }
  if ($http_cookie ~ "DJ-XXL=15"){
 add_header Set-Cookie "DJ-XXL=16;Path=/;Max-Age=+1";   
  }
  if ($http_cookie ~ "DJ-XXL=16"){
 add_header Set-Cookie "DJ-XXL=17;Path=/;Max-Age=+1";   
  }
  if ($http_cookie ~ "DJ-XXL=17"){
 add_header Set-Cookie "DJ-XXL=18;Path=/;Max-Age=+1";   
  }
  if ($http_cookie ~ "DJ-XXL=18"){
 add_header Set-Cookie "DJ-XXL=19;Path=/;Max-Age=+1";   
  }
  if ($http_cookie ~ "DJ-XXL=19"){
 add_header Set-Cookie "DJ-XXL=20;Path=/;Max-Age=+1";   
  }
  if ($http_cookie ~ "DJ-XXL=20"){
 add_header Set-Cookie "DJ-XXL=21;Path=/;Max-Age=+3600";   
  }
  if ($http_cookie ~* "DJ-XXL=21"){
    return 429;
  }

        
    }
PHP - вставим этот код в php файл куда шлют POST запросы.
Это заблокирует на час того кто непрерывно шлёт POST запросы уже на четвёртой попытке!

Код:
// DJ-X Анти DDoS
   if (strstr($_SERVER['REQUEST_METHOD'], 'POST'))
   {
if (strstr($_SERVER['HTTP_COOKIE'], 'DJ-XXL=3'))
   {
Setcookie ("DJ-P", "4", time()+3600, "/");
   }
       }
Источник: https://dj-x.info/forum.php?topic=522.0
 
Сверху