» Как защититься от спамеров и не сильных DDOS атак

Как защититься от спамеров и не сильных DDOS атак

Как защититься от спамеров и их спам ботов или есть ли защита сайта от DDOS атак? Вопрос не сказать, что очень актуальный, но некоторую часть интернет сообщества, точнее вебмастеров, интересует весьма живо. Защита сайта от спамерских ботов или ДОС атак обычным владельцам сайта не так актуальна, как она актуальна тем, у кого на их ресурсах содержится доски объявлений, интернет каталоги ссылок или статей и гостевые книги. Также защититься от спамеров, DDOS атак или спам ботов не лишним будет тем, у кого на страницах сайта имеется возможность оставлять комментарии - даже в мощных и хорошо защищённых движках сайтов защита от примитивных ДОС, авто ботов или спамеров срабатывает далеко не всегда. Что тогда делать, если комментарии под статьями регулярно наполняются всяким не нужным текстом по милости спамеров с их вездесущими спам ботами? Можно ли вообще, изобрести, что либо сносное для противодействия примитивным DDOS нагрузкам и спам ботам? Конечно, можно!

 

Оговорюсь сразу - защититься от спамеров и авто ботов можно элементарно примитивным способом (о нём ниже), также получиться сделать защиту сайта от слабых и не мощных DDOS атак, но вот от серьёзных DDOS атак защититься самолично своими методами, например, простыми скриптами PHP, никак не получится. С массовыми DDOS атаками не всегда справляются мощные хостинги, а что говорить о нас. Но нас крупные DDOS атаки особо не тревожат, пусть о них болит голова, например, у администрации сайта ВКонтакте или сайта Одноклассники - это их проблема. А вот то, что простому среднестатистическому вебмастеру нужно, так это способы избавления своего сайта от спамеров, спам ботов и лёгких DDOS атак.

 

Как защититься от спамеров DDOS атак

 

 

Варианты защиты от DDOS скриптами


Противодействие спам ботам или DDOS атакам будет считаться правильно сделанным, если спамер или атакующий спам бот, будут в момент начала атак на сайт, получать 403 ответ сервера - запрет доступа. Также можно сделать эмуляцию 403 ответа или серверный редирект (средствами PHP) куда-нибудь подальше от вас. Ответ сервера под номером 403 - это сгенерированный сервером динамический ответ о запрете доступа к ресурсу, а эмуляция 403 ответа - пустая или с минимальным текстом (как в титлах страницы, так в боди-теле) страница, таким, чтобы бот мог понять, куда он попал, например, с таким: ERROR 403. При этом некоторая нагрузка на сервер, всё таки сохраняется. Но вам это не важно, так как спамер или спам бот, видя, что ему ничего не светит, тут же оставляет свои атаки на сайт. С несильными DDOS атаками тут, конечно, посложнее будет, но эти DDOS атаки нас практически не достают по сравнении с проблемами связанными с защитой сайта от спамеров и спам ботов.

 

Второй вариант защиты интернет-ресурсов от примитивных DDOS атак, спам ботов или спамеров заключается в серверном редиректе атакующего спамера или спамеров. В момент начала атаки на ресурс, атакуемый просто и непринуждённо перенаправляется сервером на сторонний ресурс. Всё зависит от вас - куда вы направите спамера, туда он и отправиться. Лучше, конечно, перенаправлять спамера на какой-нибудь вымышленный URL-адрес, например, такой: https://www.hfjfirfiior.ru/. И пусть спам бот его и ищет. Он к вам на сайт в дверь лезет, а вы его не пустив даже на порог, пинком под зад отправляете чёрт даже не знает куда. Вот этот вариант защиты сайта от не серьёзных DDOS атак, спам ботов или спамеров получше будет с точки зрения нагрузок на сервер в моменты спамерских или DDOS атак. Ниже можно посмотреть простые, PHP скрипты защиты от спамерских атак разных нежеланных спам ботов. И не будут они больше гадить в гостевых книгах, в комментариях к статьям и, вообще, нагрузка на сайт резко снизиться.

 

Зачем вообще защищаться от DDOS


Чем вообще опасны спамерские атаки на сайт с разных точек зрения? В принципе опасны только мощные DDOS атаки, резко и надолго выводящие сайты из строя, а вот простые спам боты массово заходящие в гости, конечно, не имеют такой разрушительной силы. Но это, как посмотреть?! Защищаться от атак спам ботов однозначно можно и защититься от спамеров, конечно, нужно, и вот почему.

 

Не знаю, как и где, но на моих сайтах, а они располагаются на хостинге Jino, периодически зависал КРОН - это задания по расписанию. Я долго переписывался с техподдержкой, почему вообще у меня часто блокируется КРОН, но они долго сами не могли дать точного и конкретного ответа. А писать им нужно было не только поэтому, но и для того, чтобы их специалисты разблокировали мне зависший КРОН. Много позже, они-то мне и дали ответ о частых причинах зависаний КРОНА - так встал вопрос о защите моих проектов от спамеров, простейших DDOS атак и спам ботов. Итак: мне понадобилось защититься от спам ботов и DDOS атак. Какие у меня есть варианты защиты от спама и спамеров?

 

Сразу же техподдержка подсказала мне простой метод, который я и без них знал, по защите сайта от спамеров и разных ДОС атак - регулярно смотреть в логи посетителей сайта и найдя особо назойливые IP-адреса, просто вписывать их в корневой файл htaccess. Это превосходная защита сайтов от спам ботов, не крупных DDOS атак и вредных спамеров, но имеется одно НО. Такая защита сайта от спамеров не является динамической, как требуется в идеале - это банальная защита сайта уже после акта атаки. Сначала была атака на сайт, следом я посмотрел зловредные IP-адреса спамеров в логах, и только потом вписал их и DDOS спам ботов в файл htaccess. Но зачем нужна такая защита от спамеров и DDOS атак? Динамика то где?

 

PHP скрипты защиты от атак спамеров и не мощных ДОС атак


Много, где я рылся в сети, выискивая скрипт, чтобы защититься от спам ботов и примитивных ДОС атак, но ничего толкового я не находил. Вся предлагаемая защита от спамеров сводилась к тому самому файлу htaccess. Конечно, меня сей факт не устраивал и я продолжал рыть, рыть, и рыть интернет. В итоге я нашёл, что искал - это были готовые PHP-заготовки (блоки) для тех или иных целей. Посидев день и ночь над скриптами, и подумав, как мне всё это применить для моей конкретной цели защиты от спама, в итоге всё срослось. И теперь защититься от спамеров с их спам ботами можно элементарно. Защита от не сильных DDOS атак также может быть выполнена ниже предлагаемыми мной PHP скриптами. Вариантов исполнения скриптов три, эффект защиты сайта первыми двумя примерно одинаков, у третьего - много мощнее. Разницу я выше по тексту описывал.

 


 

PHP скрипт защиты от спам ботов эмуляцией 403-го ответа сервера

 

Данный способ самый слабый, но он прекрасно подходит для вариантов защиты от всяких навязчивых качалок, парсеров, таких программ, как XRumep, Жукладочник, AllSubmitter, Page Promoter и аналогичных. Скрипт поможет защититься от спам ботов массово засерающих гостевые книги и комментарии к страницам.

 

 

<?php

// Доверенные имена ботов
if (strstr($_SERVER['HTTP_USER_AGENT'], 'Yandex')) {$bbots="good";}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')) {$bbots="good";}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Aport')) {$bbots="good";}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'bingbot')) {$bbots="good";}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Yahoo! Slurp')) {$bbots="good";}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'msnbot')) {$bbots="good";}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Mail.RU')) {$bbots="good";}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Rambler')) {$bbots="good";}
elseif (strstr($_SERVER['REMOTE_ADDR'], '94.202.264.34')) {$bbots="good";} // это какой-нибудь доверенный
// IP адрес. Если такового нет, то строчку можно закомментировать

else {
// объявляем работу с сессиями
session_start();
}
session_save_path($_SERVER["DOCUMENT_ROOT"]."session"); // указываем папку session, куда будет
// сохраняться информация сессий, её нужно положить в корень сайта
// Но данная строчка, как правило не нужна, так как на хостингах есть, где хранить сессии автоматом


$time=microtime(1); // Получаем текущее время в секундах с минимум двумя знаками после запятой

if (!isset($_SESSION["telecod_ip"])) // Проверка наличия переменной telecod_ip в сессии

$_SESSION["telecod_ip"]=array(0,0,0); // Добавляем сессию в пустой массив для хранения
// времени между посещениями и их количества
// array(0,0,0) - ставим столько нулей, сколько хотим иметь максимум посещений за указанное время

$min_time=min($_SESSION["telecod_ip"]); // Поиск в массиве минимального значения времени между заходами

$interval=$time-$min_time; // Получаем минимальный временной интервал между двумя посещениями

if ($interval < 1) // Сравниваем минимальный временной интервал между посещениями
// (начиная с 1 посещения записанного в куки) с указанным временем
{
die("<!DOCTYPE html><head><title>Error 403 Forbidden. Documen not found</title></head><body><center>Errort 403 Forbidden. Documen not found</center></body></html>"); // Если условие верное, тогда идёт вывод
// данного сообщения на экран

}

$min_index=array_search($min_time,$_SESSION["telecod_ip"]); // Получаем значение минимального
// времени двух ближайших посещений в массиве

$_SESSION["telecod_ip"][$min_index]=$time; // Обнуляем сессию и заменяем в массиве минимальное
// время на текущее

?>

 


 

PHP скрипт защиты от слабых DDOS атак и спам ботов серверным редиректом

 

Кроме защиты от всех выше описанных вариантов первым скриптом, данная версия PHP скрипта прекрасно справляется с защитой от эпизодических и не мощных DDOS атак.

 

 

<?php

// Доверенные имена ботов
if (strstr($_SERVER['HTTP_USER_AGENT'], 'Yandex')) {$bbots="good";}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')) {$bbots="good";}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Aport')) {$bbots="good";}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'bingbot')) {$bbots="good";}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Yahoo! Slurp')) {$bbots="good";}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'msnbot')) {$bbots="good";}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Mail.RU')) {$bbots="good";}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Rambler')) {$bbots="good";}
elseif (strstr($_SERVER['REMOTE_ADDR'], '94.202.264.34')) {$bbots="good";} // это какой-нибудь доверенный
// IP адрес. Если такового нет, то строчку можно закомментировать

else {
// объявляем работу с сессиями
session_start();
}
session_save_path($_SERVER["DOCUMENT_ROOT"]."session"); // указываем папку session, куда будет
// сохраняться информация сессий, её нужно положить в корень сайта
// Но данная строчка, как правило не нужна, так как на хостингах есть, где хранить сессии автоматом


$time=microtime(1); // Получаем текущее время в секундах с минимум двумя знаками после запятой

if (!isset($_SESSION["telecod_ip"])) // Проверка наличия переменной telecod_ip в сессии

$_SESSION["telecod_ip"]=array(0,0,0); // Добавляем сессию в пустой массив для хранения
// времени между посещениями и их количества
// array(0,0,0) - ставим столько нулей, сколько хотим иметь максимум посещений за указанное время

$min_time=min($_SESSION["telecod_ip"]); // Поиск в массиве минимального значения времени между заходами

$interval=$time-$min_time; // Получаем минимальный временной интервал между двумя посещениями

if ($interval < 1) // Сравниваем минимальный временной интервал между посещениями
// (начиная с 1 посещения записанного в куки) с указанным временем
{
header('Location: https://www.microsoft.com'); // Если условие верное, тогда идёт переадресация
// (адрес переадресации любой, хоть бредовый)

}

$min_index=array_search($min_time,$_SESSION["telecod_ip"]); // Получаем значение минимального
// времени двух ближайших посещений в массиве

$_SESSION["telecod_ip"][$min_index]=$time; // Обнуляем сессию и заменяем в массиве минимальное
// время на текущее

?>

 


 

PHP скрипт защиты от средних DDOS атак и спам ботов 403-им ответом сервера

 

При данном варианте защиты сайта, это будет самый, что ни на есть настоящий 403-ий ответ сервера. Можно гарантированно защититься от всего, что описано выше, а также от среднего уровня непродолжительных DDOS атак спам ботов. Если атаки будут длительные и мощные, тогда просто ляжет сам хостинг.

 

 

<?php

// Доверенные имена ботов
if (strstr($_SERVER['HTTP_USER_AGENT'], 'Yandex')) {$bbots="good";}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')) {$bbots="good";}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Aport')) {$bbots="good";}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'bingbot')) {$bbots="good";}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Yahoo! Slurp')) {$bbots="good";}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'msnbot')) {$bbots="good";}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Mail.RU')) {$bbots="good";}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Rambler')) {$bbots="good";}
elseif (strstr($_SERVER['REMOTE_ADDR'], '94.202.264.34')) {$bbots="good";} // это какой-нибудь доверенный
// IP адрес. Если такового нет, то строчку можно закомментировать
else {
// объявляем работу с сессиями
session_start();
}
session_save_path($_SERVER["DOCUMENT_ROOT"]."session"); // указываем папку session, куда будет
// сохраняться информация сессий, её нужно положить в корень сайта
// Но данная строчка, как правило не нужна, так как на хостингах есть, где хранить сессии автоматом


$time=microtime(1); // Получаем текущее время в секундах с минимум двумя знаками после запятой

if (!isset($_SESSION["telecod_ip"])) // Проверка наличия переменной telecod_ip в сессии

$_SESSION["telecod_ip"]=array(0,0,0); // Добавляем сессию в пустой массив для хранения
// времени между посещениями и их количества
// array(0,0,0) - ставим столько нулей, сколько хотим иметь максимум посещений за указанное время

$min_time=min($_SESSION["telecod_ip"]); // Поиск в массиве минимального значения времени между заходами

$interval=$time-$min_time; // Получаем минимальный временной интервал между двумя посещениями

if ($interval < 1) // Сравниваем минимальный временной интервал между посещениями
// (начиная с 1 посещения записанного в куки) с указанным временем
{

$file=".htaccess"; // Корневой файл, куда пишем строки типа "Deny from x.x.x.x".
// Нужно выставить на этот файл 644 права доступа

// Функция для 100% определения IP адреса посетителя (спамера)
function RealIpAddr()
{
if(isset($HTTP_SERVER_VARS)) {
if(isset($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])) {
$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
}elseif(isset($HTTP_SERVER_VARS["HTTP_CLIENT_IP"])) {
$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
}else{
$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
}
}else{
if(getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
$ip = getenv( 'HTTP_X_FORWARDED_FOR' );
}elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {
$ip = getenv( 'HTTP_CLIENT_IP' );
}else {
$ip = getenv( 'REMOTE_ADDR' );
}
}
return $ip;
}
$ip = RealIpAddr(); // Получение IP адреса посетителя
$lines = array();
if (!in_array($ip, $lines)) // Проверка наличия IP в массиве
{
$lines[] = $ip;
}

// Присваиваем переменной $mytext значение собранное из фразы "Deny from" и IP спамера для проверки
// его наличия в файле .htaccess
$mytext = " Deny from $ip"; // Перед "Deny from" желательно, но не обязательно, оставить пробел

// Проверка файла .htaccess на наличие в нём записи типа "Deny from x.x.x.x", что бы не допустить
// повторной записи IP спамера
if(strstr(file_get_contents($file), $mytext) != true)
{

// Если IP спамера в файле .htaccess не найдено, тогда в него добавляем запись типа "Deny from x.x.x.x"
// Каждая запись пишется с новой строчки. Все строки с записями пишутся в самый низ файла .htaccess
$fp = fopen($file,"a");
flock($fp, LOCK_EX); // блокируем файл
fseek($fp, 0); // ставим указатель на начало файла
fwrite($fp,"$mytext\r\n");
flock($fp, LOCK_UN); // снимаем блокировку
fclose($fp);

// Или можно эту строчку использовать взамен верхних шести, работает одинаково хорошо
// file_put_contents($file, $mytext."\r\n", FILE_APPEND | LOCK_EX);


}
}

$min_index=array_search($min_time,$_SESSION["telecod_ip"]); // Получаем значение минимального
// времени двух ближайших посещений в массиве

$_SESSION["telecod_ip"][$min_index]=$time; // Обнуляем сессию и заменяем в массиве минимальное
// время на текущее

?>

 


 

Скрипт аналогичный верхнему скрипту борьбы со спамом, но работающий с MSQL базой


Все приведённые выше скрипты защиты от спама и DDOS атак для своей работы не требуют MSQL баз и работают на PHP сессиях. В этих скриптах, как и в ниже прилагаемом скрипте с применением MSQL базы, имеется возможность регулировать, как число ближайших посещений сайта в секунду (интервал времени), так и сам временной интервал.

Но у данного варианта есть маленькое НО, дело в том, что скорость работы скриптов на сессиях гораздо выше, чем с базой MSQL. Хотя в большинстве практических случаев - это мелочи.

 

Скачать скрипт, работающий с базами MSQL можно по ссылке ниже. Все оптимальные настройки скриптов с MSQL базой указаны внутри самих скриптов.

 

СКАЧАТЬ СКРИПТ

 


 

Есть небольшое дополнение к последним двум PHP скриптам. Учитывая, что в список спам ботов может случайно попасть любой доверенный IP адрес, а также учитывая, что совсем за непродолжительный промежуток времени файл .htaccess будет сильно набит адресами спамеров, то для предотвращения всего этого, нам нужно с какой-нибудь периодичностью, например один раз в неделю или меньше, удалять из файла .htaccess все ранее записанные в него скриптом защиты от спам ботов и DDOS атак IP адреса этих спам ботов от которых вы пытаетесь защищаться.

 

Для выполнения очистки файла .htaccess, прилагается второй PHP скрипт. Он будет лежать, например, в корне сайта - рядом с перезаписываемым файлом .htaccess. Хотя можете запрятать файл со скриптом перезаписи, куда-нибудь поглубже - работать всё равно будет, только тогда не забудьте в строке $filee='.htaccess'; переписать адресацию до файла .htaccess. Запускать его нужно обычным КРОНОМ - заданием по расписанию, эта настройка есть на всех хостингах. Также можно запускать этот файл из браузера.

 

Назвать скрипт перезаписи файла .htaccess можете, как хотите, например, resetter.php. Скрипт ниже.

 

Не зависимо, где вы его поместите, выставите на него права 444. Данный файл запустить просто так не получится - он под паролём. Смысл запароливания в том, что стоит только кому угодно запустить файл, а это могут быть и обычные поисковые боты, и спамерские, то скрипт тут же сработает и перезапишет файл .htaccess. И таких сработок благодаря спамерам и простым поисковым ботам может быть за сутки полным полно. Какая же тогда это защита от DDOS атак и спам ботов? Сам скрипт ниже.

 

 

<?php

if ($pass = $_GET['pass']=='11111') // Пароль для доступа к запуску этого файла 11111. Пароль меняйте
// на любой. Пример адресации для запуска файла из браузера: http://Ваш домен/resetter.php?pass=11111
// Если будете запускать файл КРОНОМ, не забудьте добавить к ссылке до файла вот это: ?pass=11111
// Где 11111 - пароль, смените его на свой.

{

$filee='.htaccess'; // Адрес до записываемого файла .htaccess

// Присваиваем переменной $mytext_2 фразу "Deny from"
$mytext_2 = 'Deny from';

$null=<<<htaccess

Тут содержимое оригинального файла .htaccess без директив "Deny from"

htaccess;

// Проверка файла .htaccess на наличие в нём хотя бы одной фразы "Deny from". Если она есть,
// то файл .htaccess перезаписывается

if(strstr(file_get_contents($filee), $mytext_2) != false)

{
$fpp = fopen($filee,"w");
flock($fp, LOCK_EX); // блокируем файл
fseek($fp, 0); // ставим указатель на начало файла
fwrite($fpp, $null);
flock($fp, LOCK_UN); // снимаем блокировку
fclose($fpp);
}
}

?>

 


 

Как и куда подключить данные скрипты защиты от спама


Любой из первых четырёх скриптов инклюдится или вписывается в самое начало индексного файла движка сайта после <php. Какой это файл, думаю вам понятно. Защита от спам ботов и не сильных DDOC атак почти гарантирована (на 100% защиту этими вариантами гарантировать нельзя).
Минимальное и оптимальное число посещений, чтобы защититься от спама и спам ботов равно 3-5 в секунду. Выставлять 2 не стоит, иначе в бан могут попасть обычные пользователи интернета - случайно лихорадочно кликнувшие по ссылке тройку раз, и тогда скрипт защиты от спама сработает.

 


 

Защита от спама технических папок и файлов


Выше было описано, как защититься от спама, который своими частыми обращениями нагружает файлы сайта, которые непосредственно формируют полезное содержимое. А как быть с так называемыми техническими файлами и папками? Технические - это в первую очередь, PHP-файлы и папки содержащие их.

 

Как правило, технические файлы защищены, если в папке в которой они лежат, имеется файл .htaccess с содержащимися в нём вот этими строчками:

Order Deny,Allow
Deny from all


Эти две строки помогают избавить директорию от её посещения кем бы то ни было кроме сервера (хостинга), где находится сам сайт. Для него доступ свободен.

 

Конечно, данными строками далеко не все технические папки сайта можно закрыть - если всё закрыть таким образом, то сайт может вообще перестать нормально работать. Но так или иначе всегда есть папки подверженные спам атакам, которые как раз можно закрыть от этих спам атак, при этом сайт работать будет без проблем. Такие папки в каждом движке сайта свои и их просто нужно знать.

 

Если в корневой файл .htaccess вписать вот такую или такие строчки по аналогии (первую строку дублировать не нужно):

RewriteCond %{HTTP_REFERER} !^http://ваш домен/ [NC]
RewriteRule ^Имя защищаемой папки/(.*)$ http://адрес переадресации [NC]


то при любой попытке бота, кроме самого сервера (скриптов сайта), обратится к защищаемой папке или при попытке кого бы то ни было войти в эту папку через браузер, тут же последует серверная переадресация на URL, который будет указан во второй строке. Например, можно указать переадресацию на свой же главный индексный файл, в котором содержится любой выше приведённый скрипт защиты от спама. И тогда атакующий защищаемую папку, просто попадёт в бан-лист и доступ на сайт ему будет вообще закрыт.


Только нужно учесть, что если в HTML коде страниц вашего сайта имеется строчка, которая будет подгружать в ваш браузер какую-либо полезную информацию (например, картинку или текст) из защищаемой папки, то тогда эта самая информация НЕ под грузится и отображаться в браузере НЕ будет.


И обязательно не забудьте прописать в файле robots.txt вашего сайта строчку:


Disallow: /Имя защищаемой папки


Обратите внимание - слеш на конце этой строчки НЕ нужен.



 

Что делать, если на хостинге нет КРОНА?


Вариантов развития ситуации имеется три:

1. Сменить хостинг на другой (не всегда возможно).
2. Периодически запускать самому скрипт очистки логов спам ботов.
3. Использовать на сайте PHP скрипт эмулятор КРОНА.

Ниже опишу третий вариант: скрипт эмулятор КРОНА

 

Скрипт эмулятора КРОНА вставляется в главный индексный файл сайта (как и все выше приведённые PHP скрипты) и работает просто. При любом отдельно взятом заходе посетителя или бота на сайт, данный скрипт сработает и начнёт производить отсчёт времени, настройку которого можно сделать в скрипте. Так вот, если между двумя ближайшими посещениями сайта (даже спам ботами) не пройдёт настроенного интервала времени, то скрипт более срабатывать не будет, а если при последующем посещении сайта (кем угодно и спам ботами тоже) время между заходами на сайт превысит настроенный интервал, то PHP скрипт эмулятора КРОНА сработает и запустит наш файл resetter.php для очистки логов спам ботов и ботов DDOS атак.

 

<?php

$cron_time=filemtime("cron_time"); // получаем время последнего изменения файла "cron_time"
// Файл "cron_time" скрипт создаст сам

if (time()-$cron_time>=600) // сравниваем с текущим временем 600 секунд это - 10 минут
{
file_put_contents("cron_time",""); // перезаписываем файл cron_time

// $_GET['pass']="11111"; // Если файл resetter.php запаролен, то раскомментировать эту строку

include "resetter.php"; // выполняем работу скрипта resetter.php
}

?>

 

Если вам нужно, чтобы скрипт эмулятор КРОНА срабатывал только один раз в сутки или раз в неделю, начиная с заходом самого первого посетителя (включая и любых ботов), то данный PHP скрипт эмулятора можно легко изменить:

 

<?php

$cron_time=filemtime("cron_time"); // получаем время последнего изменения файла "cron_time"
// Файл "cron_time" скрипт создаст сам

if (date("d")!=date("d",$cron_time)) // сравниваем день изменения файла с текущим

// if (date("w")!=date("1",$cron_time)) // сравниваем название дня недели изменения файла с текущим.
// От 0 (воскресенье) до 6 (суббота)

{
file_put_contents("cron_time",""); // перезаписываем файл cron_time

// $_GET['pass']="11111"; // Если файл resetter.php запаролен, то раскомментировать эту строку

include "resetter.php"; // выполняем работу скрипта resetter.php
}

?>



Реклама

Реклама