Вы не зашли.
Главная » PHP » этот код может нанести какой либо вред ?
#1. center Off (0)
Участник
2010.01.30 01:01
Код:
span style="color: #0000BB"><?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); }}?>
этот код может нанести какой либо вред ?
Отредактировано center (2010.01.30 02:02)
#2. Gemorroj Off (107)
Administrator
2010.01.30 09:09
нет
#3. center Off (0)
Участник
2010.01.31 17:05
ок спасибо
Страниц: 1
Главная
WEB
PunBB Mod v0.6.2
0.012 s