{% else-1 %}
После того, как Вы создали свой сайт, необходимо его защитить от различных ботов. Боты могут быть самые разные и цели у них могут быть тоже разные (СПАМ, выкачивание сайта и т.д.).
Для начала создайте папку bad_bot в корне сайта. В папке bad_bot создайте четыре файла:

1) black_list.dat - изначально пустой файл, в который будет помещаться информация о ботах, "попавших в ловушку";

2) pixel.gif - прозрачный файл размером в 1 пиксель. Простой человек его не видит, но только не бот. Скачать данный файл Вы можете по ссылке;

3) black_list.php - страничка, со скриптом перейдя на которую бот будет "в ловушке", а вся необходимая информация о боте будет помещена в файл black_list.dat;

4) index.php - скрипт, проверяющий есть ли данный IP в списке ботов. Если есть, то доступ для данного IP блокируется.

                        
Теперь поместите в файл black_list.php следующий код:
PHP код:
<?php
echo '<html><body><p>Как Вы сюда попали?</p>';
echo '<p><a href="http://Ваш_домен.ru/">вернуться на главную страницу</a></p>';

if(phpversion() >= "4.2.0") {extract($_SERVER);}
$bad_bot = 0;
/* Смотрим, имеется ли такой же IP в базе */
$file_name = "black_list.dat";
$fp = fopen($file_name, "r") or die ("Ошибка файла<br>");
while ($line = fgets($fp, 255)) {
$u = explode(" ", $line);
if (preg_match("/".$u[0]."/", $REMOTE_ADDR)) {$bad_bot++;}
}
fclose($fp);
if ($bad_bot == 0) {
$tmestamp = time();
$datum = date("H:i:s d.m.Y",$tmestamp);
/* отсылаем отчет на email */
$to = "Ваш почтовый ящик";
$subject = "Заголовок сообщения";
$msg = "Пришёл с $REQUEST_URI $datum IP: $REMOTE_ADDR, User-агент $HTTP_USER_AGENT";
mail($to, $subject, $msg);
/* Если отсылать отчет на email не надо, то 4 строки выше можно удалить*/

/* Добавляем запись в файл black_list.dat */
$fp = fopen($file_name,'a+');
fwrite($fp,"$REMOTE_ADDR $datum $REQUEST_URI $HTTP_REFERER $HTTP_USER_AGENTrn");
fclose($fp);
}
echo '</body></html>';
?>

Далее в файл index.php поместите следующий код:
PHP код:
<?php
if(phpversion() >= "4.2.0") {extract($_SERVER);}
$bad_bot = 0;
/* перебираем все записи в файле black_list.dat */
$file_name = "bad_bot/black_list.dat";
$fp = fopen($file_name, "r") or die ("Ошибка файла<br>");
while ($line = fgets($fp, 255)) {
$data = explode(" ", $line);
if (preg_match("/".$data[0]."/", $REMOTE_ADDR)) {$bad_bot++;}
}
fclose($fp);
if ($bad_bot > 0) { /* это бот и мы запрещаем ему вход на сайт */
sleep(3); /* задержка загрузки странички */
echo '<html><head>';
echo '<title>Сайт временно недоступен.</title>';
echo '</head><body><br>';
echo '<center><h1>Сайт временно недоступен!</h1></center><br>';
echo '<p><center>Приносим свои извинения ...</center></p><br>';
echo '</body></html>';
exit;
}
?>
1 34 0
0

Нет фото
Chainsaw * [мошенник]
• 27 дек 2014, 15:07


*

0

Нет фото
JeNuM * 0.15
• 7 сен 2014, 11:08


А второй пункт зачем? Про картинку прозрачную

0

Нет фото
Nefest * 12.18
• 6 сен 2014, 20:27


©ech™, Иди ты*

0

Нет фото
• 6 сен 2014, 19:50


nefest, йоптель* *

0

Нет фото
Nefest * 12.18
• 6 сен 2014, 16:54


rnddev, Йопта это я хотел спросить*