Защита сайта. Блокировка по ip
|
|
RQ |
Дата: Суббота, 28.08.2010, 18:23 | Сообщение # 1 |
Уважаемый
Сообщений: 5542
| Сейчас в интернете очень активно спамят посещаемые и не очень интернет-ресурсы различных направлений и тематик. Несмотря на множество всевозможных способов защиты, расположенных на большинстве сайтов, спамеров остановить не всегда получается. Иногда они вручную или в полуавтоматическом режиме заполняют формы в гостевых, форумах, комментариях…, причем настолько нагло рекламируют себя или свой сайт, что диву даешься от их беспринципности. И от таких посягательств на "чистоту" вашего контента, а как следствие и сайта в целом, зачастую спасает только блокировка ip адреса спамера. На мой взгляд, блокировка по ip – очень эффективный метод борьбы со спамом, но применять его можно только в крайних случаях, например, когда с одного и того же ip вас спамили больше двух-трех раз. Использовать этот метод нужно крайне осторожно, дабы случайно не закрыть доступ к вашему сайту для поисковых машин, которые составляют основную часть трафика любого сайта. В этой статье рассмотрен простейший php-скрипт, который имеет два уровня защиты сайта: предупреждение спамера о том, что ему не поздоровится, если он еще раз наспамит и полная блокировка доступа к сайту по ip. Единственным минусом блокировки по ipявляется то, что спамер может пользоваться бесплатным и общедоступным прокси-сервером, и если забаннить сервер с этим ip, то к вашему сайту не смогут получить доступ и те, кто использует его исключительно в мирных целях. Поэтому прежде чем банить смотрите, кто есть кто через сервис whois. А вот и сам php-код простейшего скрипта для блокировки пользователя по ip: Code <?php /* http://wm-help.net/ */ /* Сообщение при банне ip */ define("bann_message", "Для вашего IP: %ip% доступ к сайту закрыт."); /* Предупреждение о возможности банна по ip */ define("wrong_message", "Вы предупреждены администратором данного сайта о возможной блокировке вашего IP: %ip% в случае дальнейшего нарушения правил."); /* массив с ip и типом блокировки. в ключе массива IP, в значении тип блокировки */ $bann_array = array( "195.66.203.247"=>"bann", // реальный плохой IP "220.94.220.60"=>"bann", // реальный плохой IP //"127.0.0.1"=>"wrong" // Test ); /* Функция для почти 100% определения IP адреса посетителя. */ /* Перебирает все возможные переменные с IP. */ function _ip() { if(isset($HTTP_SERVER_VARS)) { if(isset($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])) { $realip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]; }elseif(isset($HTTP_SERVER_VARS["HTTP_CLIENT_IP"])) { $realip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"]; }else{ $realip = $HTTP_SERVER_VARS["REMOTE_ADDR"]; } }else{ if(getenv( 'HTTP_X_FORWARDED_FOR' ) ) { $realip = getenv( 'HTTP_X_FORWARDED_FOR' ); }elseif ( getenv( 'HTTP_CLIENT_IP' ) ) { $realip = getenv( 'HTTP_CLIENT_IP' ); }else { $realip = getenv( 'REMOTE_ADDR' ); } } return $realip; } /* Определяет, что делать с владельцем того или иного ip адреса */ function bann_on_not_to_bann() { global $bann_array; // получаем массив с ip адресами $user_ip = _ip(); // получаем ip /* разбираем массив на ключ и значение */ foreach($bann_array as $ip=>$type) { if ($ip == $user_ip) // проверяем { switch($type) // если ip совпал то смотрим что делать { case "wrong": // предупреждение { echo str_replace("%ip%", $user_ip, wrong_message); // выводим предупреждение break; // выход из switch } case "bann": // блокировка { die(str_replace("%ip%", $user_ip, bann_message)); // Сообщение о том, что доступ закрыт + завершение работы php // break не требуется т.к. дальше уже ничего не выполняется } } } } } /* проверяем владельца ip и блокируем\предупреждаем если это спамер */ bann_on_not_to_bann(); ?> Для того, чтобы использовать данный скрипт блокировки ipадресов создайте php-файл ip_bann.php и поместите в него весь код скрипта, который вы видите выше. Затем в самом начале основного скрипта, обычно это index.php допишите строчку: include 'ip_bann.php'; Так же этот php-скрипт можно использовать для блокировки ip непосредственно в скриптах отвечающих за добавление сообщений пользователей на ваш сайт, а не повсеместно, данный вариант иногда бывает даже лучше. Источник
Так называемые парадоксы автора, шокирующие читателя, находятся часто не в книге автора, а в голове читателя.
|
|
| |
RQ |
Дата: Суббота, 28.08.2010, 18:24 | Сообщение # 2 |
Уважаемый
Сообщений: 5542
| Работает
Так называемые парадоксы автора, шокирующие читателя, находятся часто не в книге автора, а в голове читателя.
|
|
| |
Ghisool |
Дата: Четверг, 02.09.2010, 18:28 | Сообщение # 3 |
Бывалый
Сообщений: 347
| Можно просто глянуть с какого ИП спамят и в htaccess запретить ему доступ: Deny from 123.456.78.9
«Мои покупки» — магазин книг с доставкой по Украине
|
|
| |
Art |
Дата: Пятница, 03.09.2010, 00:17 | Сообщение # 4 |
Наблюдатель
Сообщений: 8669
| Как по мне ныне любой спамер имеет целый массив ip адресов. Читал я описания спамерских программ - у них давно предусмотрено это. Ну и опишу мои методы борьбы со спамом: Для wordpress - плагин Akismet Работает через список урлов спамеров, по этому отлично работате как против ручного спама, так и автоматического. Для uCoz, хотя в принципе этот метод подойдёт для других движков. Я просто изменил форму оставления комментария убрав домашнюю страницу. Щас проблемы со спамом минимальные.
Не молчи на меня. Правила форума К чему приводят споры с модератором
|
|
| |
RQ |
Дата: Пятница, 03.09.2010, 11:21 | Сообщение # 5 |
Уважаемый
Сообщений: 5542
| Quote (Art) Как по мне ныне любой спамер имеет целый массив ip адресов. Ну,я таки не знаю насчет массивов,но вот появлялись спамеры недавно на сайте ,так через пхп сделал,внес полтора десятка айпи,и все - теперь тишина недели 2 уже...
Так называемые парадоксы автора, шокирующие читателя, находятся часто не в книге автора, а в голове читателя.
|
|
| |
Ghisool |
Дата: Суббота, 04.09.2010, 12:00 | Сообщение # 6 |
Бывалый
Сообщений: 347
| Да, нормальные спамеры работают через прокси которых может быть очень много, поэтому бан по ИП может ничего не дать. Хорошая капча на сложение, а лучше 2 могут вырулить ситуацию.
«Мои покупки» — магазин книг с доставкой по Украине
|
|
| |
RQ |
Дата: Суббота, 04.09.2010, 12:24 | Сообщение # 7 |
Уважаемый
Сообщений: 5542
| есть и капча
Так называемые парадоксы автора, шокирующие читателя, находятся часто не в книге автора, а в голове читателя.
|
|
| |
|
RQ |
Дата: Суббота, 04.09.2010, 14:07 | Сообщение # 9 |
Уважаемый
Сообщений: 5542
|
Так называемые парадоксы автора, шокирующие читателя, находятся часто не в книге автора, а в голове читателя.
|
|
| |
dfdf |
Дата: Понедельник, 29.04.2013, 01:55 | Сообщение # 10 |
| В том скрипте уязвимость Можно передать в заголовке вместо ip любой код защита никудышная, нужно использовать сессионный бан тогда даже при смене ip бот будет забанен
|
|
| |
Art |
Дата: Понедельник, 29.04.2013, 09:38 | Сообщение # 11 |
Наблюдатель
Сообщений: 8669
| Цитата (RUSUA) абсолютно верно сказал dfdf. Сказал спамер, причем злостный.
Не молчи на меня. Правила форума К чему приводят споры с модератором
|
|
| |