CHAIKA

Главная | Регистрация | Вход
Пятница, 26.04.2024, 22:55
Приветствую Вас Гость | RSS
Меню сайта
Категории каталога
Мои статьи [51]
Справка по системе [59]
Запись [11]
Flash-накопители [21]
Закачка [35]
Игры [29]
Защита [76]
Локальная сеть [35]
WEB-master [44]
Восстановление [40]
Portable Soft [18]
Оптимизация [34]
Анонимайзер [4]
Ноутбуки [44]
Нетбуки [8]
Система - установка [21]
Деньги в интернете [19]
WINDOWS 7 [35]
Новые статьи [13]
Цифровое видео [26]
Мини-чат
200





Главная » Статьи » WEB-master

Ловушка для спам-бота

Ловушка для спам-бота


100 % работающий скрипт!



Многие спам-боты, чтобы скрыть свои реальные имена (названия), которые легко отследить по записи user_agent, изменяют эту запись, меняя её на записи разных браузеров (например: "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)" и так далее). Также эти боты игнорируют стандарты записей для файла robots.txt (описание стандарта Вы можете прочесть здесь
www.robotstxt.org/wc/exclusion.html robots.txt standard).

Можно, конечно, пойти путём записи нужных инструкций в файл robots.txt, а можно и предпринять другой способ, который мы опишем ниже.

Метод №1


Используем специальную директорию /bot-trap:

1. создайте поддиректорию /bot-trap (можете использовать любое другое имя)

2. сделайте такую запись в файле robots.txt:

User-agent: *

Disallow: /bot-trap/



3. вставьте невидимую ссылку (это пиксел размера 1х1) в самом начале входной страницы сайта:

<a href="/bot-trap/"><img src="images/pixel.gif" border="0" alt=" " width="1" height="1"></a>

Теперь можно ждать и просматривать лог сервера, чтобы посмотреть кто перешёл по этой ссылке.

Человек не увидит этой ссылки, поэтому не сможет по ней перейти, а поисковые системы управляются директивами, записанными в фале robots.txt , поэтому никогда не посетят директорию /bot-trap.
4. В созданную нами директорию мы поместим /bot-trap/index.php. С помощью этого скрипта мы будем автоматически сохранять все IP адреса в файл blacklist.dat.

Для начала создайте пустой файл ../blacklist.dat и сделайте его доступным для чтения и записи на сервере.

* В тексте скрипта измените значения, выделенные курсивом.

<?php 
if(phpversion() >= "4.2.0") {
extract($_SERVER);
}
?>
<html>
<head><title> </title></head>
<body>
<p>Здесь нечего смотреть. Так что же Вы здесь делаете?</p>
<p><a href="http://your.domain.ru/">вернуться назад</a></p>
<?php
$badbot = 0;
/* перебираем все записи файла blacklist.dat,
чтобы не допустить задвоенности данных */
$filename = "../blacklist.dat";
$fp = fopen($filename, "r") or die ("Ошибка открытия файла ... <br>\n");
while ($line = fgets($fp,255)) {
$u = explode(" ",$line);
if (ereg($u[0],$REMOTE_ADDR)) {$badbot++;}
}
fclose($fp);
if ($badbot == 0) {
/* отсылаем информацию веб-мастеру */
$tmestamp = time();
$datum = date("Y-m-d (D) H:i:s",$tmestamp);
$from = "badbot-watch@domain.ru";
$to = "hostmaster@domain.ru";
$subject = "Внимание! На сайт заходил спам-бот!";
$msg = "Бот пришёл с $REQUEST_URI $datum \n";
$msg .= "адрес $REMOTE_ADDR, агент $HTTP_USER_AGENT\n";
mail($to, $subject, $msg, "From: $from");
/* добавляем запись в лог-файл blacklist.dat */
$fp = fopen($filename,'a+');
fwrite($fp,"$REMOTE_ADDR - - [$datum]
\"$REQUEST_METHOD $REQUEST_URI $SERVER_PROTOCOL\"
$HTTP_REFERER $HTTP_USER_AGENT\n");
fclose($fp);
}
?>
</body>
</html>

5. Чтобы исключить повторный заход спам-бота на страницвы сайта, перед выводом любой страница сайта нужно проверять содержимое файла blacklist.dat:
<?php include($_SERVER['DOCUMENT_ROOT'] . "/blacklist.php"); ?>

Это текст скрипта blacklist.php, который нужно подключать ко всем страницам Вашего сайта:
<?php 
if(phpversion() >= "4.2.0") {
extract($_SERVER);
}
$badbot = 0;
/* перебираем все записи файла blacklist.dat */
$filename = "../blacklist.dat";
$fp = fopen($filename, "r") or die ("Ошибка открытия файла ... <br>\n");
while ($line = fgets($fp,255)) {
$u = explode(" ",$line);
if (ereg($u[0],$REMOTE_ADDR)) {$badbot++;}
}
fclose($fp);
if ($badbot > 0) { /* это спам-бот, запрещаем вход на сайт */
sleep(12);
print ("<html><head>\n");
print ("<title>Сайт недоступен.</title>\n");
print ("</head><body>\n");
print ("<center><h1>Добро пожаловать!</h1></center>\n");
print ("<p><center>Этот сайт временно недоступен ...</center></p>\n");
print ("<p><center>Если Вы считаете, что это ошибка,
отправьте письмо владельцу сайта.</center></p>\n");
print ("</body></html>\n");
exit;
}
?>

Метод №2


Другой метод не использует PHP и также запрещает доступ спам-ботов к Вашему сайту. Он заключается в использовании файла .htaccess.

Пример записи:
SetEnvIfNoCase User-Agent "Indy Library" bad_bot 
SetEnvIfNoCase User-Agent "Internet Explore 5.x" bad_bot
SetEnvIf Remote_Addr "195\.154\.174\.[0-9]+" bad_bot
SetEnvIf Remote_Addr "211\.101\.[45]\.[0-9]+" bad_bot
Order Allow,Deny
Allow from all
Deny from env=bad_bot


Надеемся, что это поможет Вам избавиться (хотя бы частично) от воровства адресов электронной почты со страниц Вашего сайта.

Источник: http://www.infonew.ru/bottrap.php
Категория: WEB-master | Добавил: chaika2 (20.09.2009)
Просмотров: 890 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
Друзья сайта
  • Все для веб-мастера
  • Программы для всех
  • Мир развлечений
  • Деревенька
  • Районная сеть Чайка.Net










  • Помогло? Скажи спасибо!

    Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    Copyright MyCorp © 2024 |