Создать ответ 
Немного измененный скрипт автобана
Автор Сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #31
RE: Немного измененный скрипт автобана
Похоже, что Вы неправильно (точнее не туда) вставили код (24 строка файла index.php). С DLE не работал, поэтому не могу точно сказать, куда там нужно добавлять код, но я бы посоветовал как можно выше (в шапку сайта).
Если проверить и вставить приведенный выше код в пустую страничку, то все работает.
06.02.2013 22:33:03
Найти все сообщения Цитировать это сообщение
A67809R Не на форуме
Рядовой
*

Сообщений: 4
У нас с: Feb 2013
Сообщение: #32
RE: Немного измененный скрипт автобана
Я уже разобрался. Все у меня получилось. Спасибо большое. Но только подскажите, пожалуйста, можно ли и если да, то как так дописать в коде в скрипте, что бы например работа скрипта не распространялась бы например на мой ip? Или что бы в файл htaccess дописывались разрешения на мой ip
например
Цитата:order allow deny
deny from all
allow from <мой ip>
И я выставил в скрипте
Цитата:if ($count_visit[0]>1) {
цифру 1 вместо, как было 10. Думал, что по идее будет разрешать только один визит на мой сайт. А нет. Почему то только после третьего входа с одного ip - срабатывает скрипт. Подскажите еще, пожалуйста, как можно изменить к одному посещению и если возможно это. Спасибо.
07.02.2013 11:42:50
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #33
RE: Немного измененный скрипт автобана
Если у Вас статический IP адрес, то в скрипт можно добавить условие на его проверку. Для этого перед строчкой:
$result=mysql_query("INSERT INTO all_visits (ip,date) VALUES ('".$ip."','".time(true)."')");
добавляем проверку на заданный IP:
if ($ip!="222.222.222.222") $result=mysql_query("INSERT INTO all_visits (ip,date) VALUES ('".$ip."','".time(true)."')");

По поводу срабатываний не знаю почему у Вас так получается, возможно кэшируется что-то. И кстати, цифра 1 означает что не более и захода за 10 секунд! (настраивается в (time(true)-10)).
07.02.2013 19:04:10
Найти все сообщения Цитировать это сообщение
A67809R Не на форуме
Рядовой
*

Сообщений: 4
У нас с: Feb 2013
Сообщение: #34
RE: Немного измененный скрипт автобана
Спасибо все понял
08.02.2013 23:41:37
Найти все сообщения Цитировать это сообщение
vander dan taill Не на форуме
Рядовой
*

Сообщений: 1
У нас с: May 2013
Сообщение: #35
RE: Немного измененный скрипт автобана
При каждой новой блокировке, создаются новые блоки, дублирующие по содержанию самих себя + новый IP

Код:
<Limit GET POST>
order allow,deny
deny from 46.161.41.27
deny from 46.105.105.227
deny from 94.190.20.74
deny from 178.162.191.58
allow from all
</Limit><Limit GET POST>
order allow,deny
deny from 46.105.105.227
deny from 46.161.41.27
deny from 94.51.156.81
deny from 94.51.156.81
deny from 94.51.156.81
deny from 94.190.20.74
deny from 94.190.20.74
deny from 178.162.191.58
allow from all
</Limit>

Код
PHP код:
if (!empty($_SERVER['HTTP_CLIENT_IP']))
    
$ip=$_SERVER['HTTP_CLIENT_IP'];
elseif (!empty(
$_SERVER['HTTP_X_FORWARDED_FOR']))
    
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
else 
$ip=$_SERVER['REMOTE_ADDR'];
$bot=$_SERVER['HTTP_USER_AGENT'];

if (
strstr($_SERVER['HTTP_USER_AGENT'], 'Yandex')) {$bot='Yandex';}
elseif (
strstr($_SERVER['HTTP_USER_AGENT'], 'Google')) {$bot='Google';}
elseif (
strstr($_SERVER['HTTP_USER_AGENT'], 'Yahoo')) {$bot='Yahoo';}
elseif (
strstr($_SERVER['HTTP_USER_AGENT'], 'Mail')) {$bot='Mail';}

if (
$bot!='Yandex' and $bot!='Google' and $bot!='Yahoo' and $bot!='Mail') {

$link=mysql_connect("ххх.ххх.ru","gb_ххххххххххх","ххххххххх") or die("Could not connect: ".mysql_error());
mysql_select_db("gb_ххххххх"$link);

 
$result=mysql_query("INSERT INTO all_visits (ip,date)
         VALUES ('"
.$ip."','".time(true)."')");
 
$result=mysql_query("SELECT count(id) FROM all_visits
         WHERE (ip='"
.$ip."' and date>'".(time(true)-10)."') LIMIT 1"$link);
 
$count_visit=mysql_fetch_array($result);

 if (
$count_visit[0]>30) {
  
$result=mysql_query("INSERT INTO black_list_ip (ip) VALUES ('".$ip."')");

  
$file_htaccess=".htaccess";
$start_line=0;

    
$lines=file($file_htaccess);
    for (
$n=0$n<=count($lines); $n++) if ($lines[$n] == "<Limit GET POST>"$start_line=$n;
    if (
$start_line!=0) for ($n=0$n<$start_line$n++) $lines_htaccess[]=$lines[$n];
        else 
$lines_htaccess=$lines

  
$lines_htaccess[]="<Limit GET POST> \r\n";
  
$lines_htaccess[]="order allow,deny \r\n";

  
$result=mysql_query("SELECT ip FROM black_list_ip ORDER BY INET_ATON(ip)"$link);
  
$number=mysql_num_rows($result);

  for (
$n=1$n<=$number$n++) {
   
$htaccess_ip=mysql_fetch_array($result);
   
$lines_htaccess[]="deny from ".$htaccess_ip[ip]."\r\n";
  }

  
$lines_htaccess[]=" allow from all \r\n";
  
$lines_htaccess[]="</Limit> \r\n\r\n";

  
file_put_contents($file_htaccess$lines_htaccess);
 }


Стоит на Joomla. Где чего подправить чтобы этого не было? Спасибо.
Может кто уже выложит готовый рабочий скрипт без косяков на форуме?
Rose
04.05.2013 17:54:10
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #36
RE: Немного измененный скрипт автобана
vander dan taill, Вы не учли то, что в файле .htaccess в строках могут присутствовать спецсимволы конца строки и перевода каретки. Поэтому сравнение <Limit GET POST> со всей строкой дает неверный результат. Рекомендуем использовать функцию поиска вхождения подстроки strstr.

Для этого замените строчку:
PHP код:
for ($n=0$n<=count($lines); $n++) if ($lines[$n] == "<Limit GET POST>"$start_line=$n

на такую:
PHP код:
for ($n=0$n<=count($lines); $n++) if (strstr($lines[$n], "<Limit GET POST>")) $start_line=$n

Но стоит учитывать тот факт, что если <Limit GET POST> имеется в первой строке, то приведенный выше скрипт все равно будет копировать старый блок с IP.
04.05.2013 19:19:18
Найти все сообщения Цитировать это сообщение
muzz-as Не на форуме
Рядовой
*

Сообщений: 3
У нас с: Aug 2013
Сообщение: #37
RE: Немного измененный скрипт автобана
День добрый. Есть смысл использовать "Скрипт защиты от ботов, спам ботов и авто ботов" и "Автобан, или как автоматически
заблокировать доступ к сайту" одновременно на сайте интернет магазина? Учитывая то, что за последние три месяца его взламывали раза три.
13.08.2013 08:15:37
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #38
RE: Немного измененный скрипт автобана
Смотря с какой целью Вы хотите их использовать.
Если Вам необходимо повысить защиту сайта, то смысла использовать данные скрипты нет. Данные скрипты в основном предназначены для снижения нагрузки на сервер.

Лучше обновите версию движка сайта до последней и не используйте нуленые движки. Также настоятельно не рекомендуется использовать модули и шаблоны с неофициальных сайтов т.к. в них может быть специально оставлена "дыра".
13.08.2013 18:16:30
Найти все сообщения Цитировать это сообщение
muzz-as Не на форуме
Рядовой
*

Сообщений: 3
У нас с: Aug 2013
Сообщение: #39
RE: Немного измененный скрипт автобана
Ага, понятно. Спасибо. Обновления модулей - это без проблем. Но вот обновление Prestashop с 1.3.1 до 1.5 задача прямо скажем очень непростая. Быстрее даже всё снести под ноль и на базе 1.5 сделать сайт заново.
15.08.2013 14:51:24
Найти все сообщения Цитировать это сообщение
нанометр Не на форуме
Рядовой
*

Сообщений: 7
У нас с: Sep 2013
Сообщение: #40
RE: Немного измененный скрипт автобана
Спасибо за скрипт. Но есть один нюанс. Тестировал скрипт... вроде все работало. Но в один прекрасный момент он перестал банить мой айпи когда я пытался скачать свой сайт через телепорт. При том если руками попытаться загнать себя в бан, обновляя странички на сайте, то исправно банит... А вот телепортом спокойно можно скачать хоть весь сайт и настройки не влияют ни на что, хоть ставь 2 хита на 10 секунд... Странно, что-то сломалось видимо.
09.09.2013 06:50:24
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru