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

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #81
RE: Немного измененный скрипт автобана
Возможно, Вы вставили код автобана в файл, который подгружается разными элементами странички (тут много зависит от движка сайта). Могу посоветовать перенести наш код в header странички, а из всех остальных мест удалить.
13.12.2014 15:08:48
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #82
RE: Немного измененный скрипт автобана
Доброе время суток,
Проблема частично решена удалением из htaccess строчки:
RewriteRule ^(.*) ./?%{QUERY_STRING}?
сейчас скрипт работает нормально и доступ к сайту закрывается на примерно на 11 клик, если вручную обновлять.
Есть предположения почему именно эта строка (GET параметров) вызывает проблемы? Т.е. таблица all_visits показывает количество визитов в разы больше.

И вопрос насчет аналога Crone:

При вставке кода:
<?php
$cron_time=filemtime("cron_time");
if (time()-$cron_time>=600) {
file_put_contents("cron_time","");
include "cron.php";
}
?>

Для сброса mysql выдается сообщение:
[Изображение: tid120_4.png]

Скриншот строки 62:
[Изображение: tid120_5.png]
Заранее благодарен.
14.12.2014 14:31:42
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #83
RE: Немного измененный скрипт автобана
Просто создайте в папке со скриптом файл cron_time (внутри него даже писать ничего не надо), а то скрипт пытается получить время создания данного файла, а его либо нет, либо находится в другой папке.
14.12.2014 14:41:13
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #84
RE: Немного измененный скрипт автобана
Поправьте, пожалуйста, если ошибка:
У меня на данный момент имеется 2 таблицы, первый php скрипт, который я, кстати, подключаю с include для всех страниц и вместо сброса 2 php скрипта:

PHP код:
<?php
$db
=mysqli_connect("localhost","acad","pswd","ban_id");

$res=mysqli_query($db,"DELETE FROM black_list_ip WHERE date<".(time()-900)."");
$res=mysqli_query($db,"DELETE FROM all_visits WHERE date<".(time()-900)."");

$start_line=0;
$lines='';
$ln_hta='';

$fh=fopen(".htaccess""a+");
flock($fhLOCK_EX);
fseek($fh0);
while (!
feof($fh)) $lines.=fread($fh,2048);
$lines=explode("\n"$lines);

for (
$n=0$n<=count($lines); $n++) {
 if (
strstr($lines[$n],"Order Allow,Deny")) $start_line=$n;
}
if (
$start_line!=0) for ($n=0$n<$start_line$n++) $ln_hta[]=$lines[$n];
else 
$ln_hta=$lines;

$ln_hta[]="Order Allow,Deny";
$ln_hta[]="Allow from all";

$res=mysqli_query($db,"SELECT INET_NTOA(ip) AS ip,date FROM black_list_ip
    ORDER BY INET_ATON(ip)"
);
while (
$bad_ip=mysqli_fetch_array($res)) {
 if (
time()<($bad_ip[date]+900))$ln_hta[]=" deny from ".$bad_ip[ip];
}

$ln_hta=implode("\n",$ln_hta);
ftruncate($fh0);
fwrite($fh$ln_hta);
flock($fhLOCK_UN);
fclose($fh);
?>

Я создаю на каждой странице код:
PHP код:
<?php
$cron_time
=filemtime("cron_time");    //получаем время последнего изменения файла
if (time()-$cron_time>=600) {        //сравниваем с текущим временем - 10 минут
    
file_put_contents("cron_time","");    //перезаписываем файл cron_time
    
include "cron.php";                //выполняем скрипты из файла cron.php
}
?>
где, cron.php - пустая страница. Правильно?
Ранее я предполагал, что в cron.php я вставляю код для сброса mysql указанный выше.
14.12.2014 14:56:23
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #85
RE: Немного измененный скрипт автобана
cron_time - пустой файл (нужен только для отсчета времени)! А cron.php - код для сброса mysql указанный выше.
14.12.2014 15:14:39
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #86
RE: Немного измененный скрипт автобана
Понятно, cron_time создается автоматически и cron.php имеется, если вручную обновлять, доступ закрывается, но сброса нет.
Пробовал уменьшать время до 30секунд - без результата.
И еще вопрос.
В корне у меня 1 файл access и данные записываются туда соответственно, а если страницы в папках, то создается новый htaccess и cron_reset сразу, как доступ к сайту прекращается. Как очищать эти файлы конфигурации htaccess, которые создаются автоматически в папках, где расположены страницы.
Может добавить в код команду:
$fh=fopen(".htaccess", "a+");
чтобы скрипт сброса работал и для очищения htaccess расположенный в папке
Почему нет сброса, не понимаю пока, делал уже несколько раз, доступ закрывается, а сброса нет.
Заранее благодарен.
14.12.2014 15:45:01
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #87
RE: Немного измененный скрипт автобана
Сброс будет только тогда, когда сработает файл cron.php. А сработает он не раньше времени, указанного в скрипте и только тогда, когда будет к нему обращение. Если же Вы пытаетесь попасть на страничку с забаненного IP, то ничего не выйдет, т.к. дело до срабатывания скрипта не дойдет.

Просто измените в таблице IP на другой, а потом обратитесь через браузер к файлу cron.php по данному пути и все записи старше 15 минут будут удалены. Так же обратите внимание на то, имеется ли у Вас на сайте тег <base>? Этот тег нужен для относительных URL адресов (как у Вас).
14.12.2014 16:06:40
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #88
RE: Немного измененный скрипт автобана
Проверил, тег <base href="http://autocad-problem.net" /> имеется,
после изменения ip 2130706433 на 21307064<b>3</b>3 обратился через браузер:
autocad-problem.net/php/cron.php, но реакции нет, также окно с закрытым доступом.
14.12.2014 17:38:20
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #89
RE: Немного измененный скрипт автобана
Из .htaccess еще удалите свой IP перед обращением к cron.php.
14.12.2014 17:39:59
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #90
RE: Немного измененный скрипт автобана
Вручную удаляю строки из htaccess:
Order Allow,Deny
Allow from all
deny from 127.0.0.1
и, сайт работает, нормально.
Насчет времени в cron.php - менял время на меньшее, например минута, нет сброса.
14.12.2014 17:42:31
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


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


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru