
AntiOverload v3 хак DLE ограничивает пользователям доступ к сайту или к страницам по IP, где он включён.
Работает примерно так, запоминает ip-адрес и время обращения с этого адреса, и если в течение заданного времени происходит обращение с того же адреса, то ему выдаётся ошибка 503. Т.е при нажимании кнопки обновить 3 раза подряд, выдаст это сообщение.
* Модуль для Dle необходимо подключать к скрипту самым первым. Этим обеспечит быстродействие .
Дле хак AntiOverload v3 запрет доступ к сайту к страницам по IP
Установка:
* В корне сервера создаем папку tmp и выдаём права 777  .
* Открываем index.php и перед:
Вставляем:
* Открываем index.php и перед:
<?phpВставляем:
<?php/**--------------------------------------------------------* Модуль antioverload*--------------------------------------------------------* Модуль предназначен для ограничения доступа к сайту или * к страницам, где он включён.* Принцип работы в том, что запоминается ip-адрес и время* обращения с этого адреса. И если в течение заданного* времени происходит обращение с того же адреса, то ему* выдаётся ошибка 503.* Модуль необходимо подключать к скрипту самым первым.* Этим обеспечивается быстрота его работы.*--------------------------------------------------------*//* Время задержки в секундах */$ad_delay=2;/* Путь к папке с временными файлами. Должен существовать */$ad_DirName=$_SERVER['DOCUMENT_ROOT'].'/tmp';/**---------------------------------------------------------* Список поисковых роботов.* Очень не хорошо, если поисковый робот будет натыкаться* на ошибки на сайте. Ему это может сильно не понравиться.* Поэтому пишем список юзер-агентов роботов; добавляем или* удаляем, что нужно.*---------------------------------------------------------*/$ad_Robots_UserAgent=array(   'aipbot',   'Aport',   'eStyleSearch',   'Gigabot',   'Gokubot',   'Google',   'MJ12bot',   'msnbot',   'PlantyNet_WebRobot',   'StackRambler',   'TurtleScanner',   'Yahoo',   'Yandex',   'YaDirectBot',);/**---------------------------------------------------------* Список доверенных IP.*---------------------------------------------------------*/$ad_good_ip = array(    '217.107.36.73',);/**----------------------------------------------------------* Функция создаёт в указанной директории файл, начинающийся* с буквы a (для отличия от других возможных файлов) и* содержащий в имени ip-адрес клиента.*----------------------------------------------------------*/function ad_WiteIP($dir){   $f=fopen($dir.'/a'.$_SERVER['REMOTE_ADDR'], 'w');   fclose($f);}/**----------------------------------------------------------* Проверка на наличие в поле HTTP_USER_AGENT чего-нибудь из* вышенаписанного списка.*----------------------------------------------------------*/$ad_IsRobot=false;foreach ($ad_Robots_UserAgent as $match){   if (strstr($_SERVER['HTTP_USER_AGENT'], $match)){      $ad_IsRobot=true;      break;   }}if( in_array($_SERVER['REMOTE_ADDR'], $ad_good_ip) ) {     $good_ip = true;} else {     $good_ip = false;}/**---------------------------------------------------------* Поисковые роботы не любят, когда к адресу страницы* добавляется переменная сессии. Поэтому, если на сайте* используются сессии, то их лучше включать, если агент -* не робот.* Если сессии не используются, то этот кусок можно убрать.*---------------------------------------------------------*/if (!$ad_IsRobot AND !$good_ip){   session_start();}if (!$ad_IsRobot AND !$good_ip){   /*** Чтение каталога и удаление старых файлов ***/   $ad_dir      =opendir($ad_DirName)      or die('Отсутствует директория для временных файлов');   $ad_now      =time();   $ad_forbid   =$ad_now-$ad_delay;   /* IP-адрес в имени файла, начинающегося на букву a,       а время обращения - время изменения файла */   while (false!==($ad_FName=readdir($ad_dir))){      if (ereg('^a[1-9]',$ad_FName)         && (@ filemtime($ad_DirName.'/'.$ad_FName)<$ad_forbid)){         @ unlink($ad_DirName.'/'.$ad_FName);      }   }   closedir($ad_dir);   /*** Проверка на существование пометки      о недавнем обращении с данного ip-адреса ***/   if (file_exists($ad_DirName.'/a'.$_SERVER['REMOTE_ADDR'])){      /* Если обращение было недавно, то выводим сообщение об ошибке */      header('HTTP/1.0 503 Service Unavailable');      header('Status: 503 Service Unavailable');      header('Retry-After: '.$ad_delay*3);?><!doctype html public "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"><html><head><title>Ошибка 503</title><meta http-equiv="Content-Type" content="text/html; charset=Windows-1251" /></head><body><h1>Ошибка 503 (Service Unavailable)</h1><p>Сервер не может в данный момент выдать запрашиваемую Вами страницу.Попробуйте вызвать эту страницу позже (клавиша F5).</p></body></html><?php      ad_WiteIP($ad_DirName);   // Перед выходом записываем ip      exit;   }else{      ad_WiteIP($ad_DirName);   }}?>Мы предлагаем закачать хак DLE AntiOverload v3 запрет доступ к сайту к страницам по IP
antioverload-v3.rar [6,82 Kb] (cкачиваний: 69)
