[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: запрет ip .htaccess
maximka787
Прочитал статью о запрете по ip - все гуд, настроил, залил. но появился вопрос, мне для блокировки придется постоянно сидеть у компа чтоли?)) мне раз в день приходят логи. Ну там все просто.
У меня блокировка по SID и времени сделана на БД в верху кода системы, но если бы наглые юзеры попадали бы сразу в .htaccess, думаю нагрузка была бы с несколько раз эффективней.


..кстати никто не знает чем удобней смотреть логи, я смотрю wordpad -ом) все понятно, но есть же проги более специализированные?



Спустя 9 минут, 32 секунды (29.08.2010 - 11:53) Romms написал(а):
Цитата
..кстати никто не знает чем удобней смотреть логи, я смотрю wordpad -ом) все понятно, но есть же проги более специализированные?

Нотепад)))

в.htaccess
denny from all тебе поможет biggrin.gif

deny from <заприметить для этого ИП адреса>
allow from <разрешимость для этого ИП адреса>
просмотр файлов в папке где файл .htaccess(и в дочерных каталогах, кажись)

Но это наверно тебе не поможет)
Кстати, я не понимаю, что за юзера такие страшные у тебя что их так часто приходится "банить"?

Спустя 2 минуты, 11 секунд (29.08.2010 - 11:55) maximka787 написал(а):
Спасибо Romms, но я знаю как все реализовать и это уже сделал. Вопрос про автоматический бан, вручную я могу хотя миллион запретов сделать, главное сиди и пиши в блокнот, хотелось бы реализовать как то иначе.

Спустя 6 минут, 3 секунды (29.08.2010 - 12:01) Romms написал(а):
Цитата
У меня блокировка по SID и времени сделана на БД в верху кода системы,

Ну так, напиши список, за что банить, и потом напиши скрипт который бы это делал за ознаками плохиг действий, и всё rolleyes.gif

Спустя 45 секунд (29.08.2010 - 12:02) twin написал(а):
Перезаписывай .htaccess
Это же обычный файл. Правда аккуратнее, иначе положишь весь сайт.

Спустя 2 минуты, 7 секунд (29.08.2010 - 12:04) maximka787 написал(а):
Цитата (Romms @ 29.08.2010 - 09:01)
Цитата
У меня блокировка по SID и времени сделана на БД в верху кода системы,

Ну так, напиши список, за что банить, и потом напиши скрипт который бы это делал за ознаками плохиг действий, и всё rolleyes.gif

Нет Romms, это я уже сделал. Меня интересует только файл .htaccess, я не нашел чтобы его можно было редактировать с помощью php. Хотя я уже начинаю понимать что и нет такой возможности вообще, тк это слишком важный файл.

Спустя 4 минуты, 57 секунд (29.08.2010 - 12:09) Romms написал(а):
Цитата
Нет Romms, это я уже сделал. Меня интересует только файл .htaccess, я не нашел чтобы его можно было редактировать с помощью php. Хотя я уже начинаю понимать что и нет такой возможности вообще, тк это слишком важный файл.

Та и большой потребности нет такой... Конечно, если защита на РНР и MySQL то ДДоС легче сделать, но всё же, если правильно всё сделать, то не так уже и просто...

Спустя 4 минуты, 16 секунд (29.08.2010 - 12:13) maximka787 написал(а):
Цитата (twin @ 29.08.2010 - 09:02)
Перезаписывай .htaccess
Это же обычный файл. Правда аккуратнее, иначе положишь весь сайт.

Я же не могу сидеть целый день с моими сайтами и дописывать все в .htaccess smile.gif
К тому же по лог файлам а просто не смогу посчитать количество наглых юзеров обновляющих данные, там может быть столько строк, что просто посмотреть терпения не хватит) но не в этом суть.

Начал то я из-за того что запрет по ip с помощью .htaccess вообще получается не очень удобным вариантом, тк это что за юзеры должны быть чтоб из пихать в "корневой" запрет )

Спустя 1 минута, 9 секунд (29.08.2010 - 12:14) twin написал(а):
Цитата
Хотя я уже начинаю понимать что и нет такой возможности вообще, тк это слишком важный файл.

в чем проблема то?
file_put_contents('.htaccess', 'denny from all');

Спустя 6 минут, 52 секунды (29.08.2010 - 12:21) maximka787 написал(а):
Цитата (twin @ 29.08.2010 - 09:14)

в чем проблема то?
file_put_contents('.htaccess', 'denny from all');

Ух ты.. какая интересная штука
Тоесть я могу сделать примерно так?
if count sid .... > 50 {
file_put_contents('.htaccess', 'denny from'.$_SERVER["REMOTE_ADDR"]);
}

почему это тогда не является универсальной системой защиты от того же ddos и не используется на крупнейших сайтах?

Спустя 8 минут, 35 секунд (29.08.2010 - 12:30) twin написал(а):
Цитата
Тоесть я могу сделать примерно так?

но только очень примерно.

От ддос это не спасает. А бан на уровне .htaccess работает даже на этом форуме. И вещь не сказать что редкая.

Спустя 2 дня, 11 часов, 57 минут, 41 секунда (2.09.2010 - 00:27) maximka787 написал(а):
Цитата (twin @ 29.08.2010 - 09:30)
но только очень примерно.

Смотри я сделал вот так
session_start(); 
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
echo "Вы обновили эту страницу ".$_SESSION['counter']++." раз. ";

if($_SESSION['counter']>500){
echo 'block IP';
file_put_contents('.htaccess', 'denny from '.$_SERVER["REMOTE_ADDR"]);
unset($_SESSION['counter']);
}

Все красиво и работает, .. но (..как всегда)

1. Почему то удалилось все что было до этого в файле .htaccess, хотя функция добавляет строку а не заменяет все вообще. Вместо этого прописала только одну строку denny from 79.Х.Х.Х это мой комп)

2. Если система супер перегружена (например в одну секунду каким-то чудом залезло 100 компов к примеру) то как поведет себя сервер. успеет ли заменять/пересохранять файл и выдавать другим?

Спустя 15 минут, 21 секунда (2.09.2010 - 00:43) maximka787 написал(а):
Дополнение к сообщению выше. Понял почему заменяла. Надо было добавить FILE_APPEND
file_put_contents('.htaccess', '\r\n denny from '.$_SERVER["REMOTE_ADDR"], FILE_APPEND);

но другая проблема нарисовалась, добавляется не с новой строки а друг за другом.
походу вот тут что-то надо сделать \r\n.

Спустя (17.08.2010 - 11:10) FatCat_bot написал(а):
IP-адресу 212.235.107.106 закрыт доступ в форум по причине 10-кратной неуспешной проверки джаваскрипт в течение суток.



Спустя 10 минут, 2 секунды (17.08.2010 - 12:20) FatCat_bot написал(а):
IP-адресу 212.235.107.106 закрыт доступ в форум по причине 10-кратной неуспешной проверки джаваскрипт в течение 10 суток.

Спустя 3 часа, 10 минут, 11 секунд (17.08.2010 - 15:30) FatCat_bot написал(а):
IP-адресу 200.208.251.130 закрыт доступ в форум по причине 50-кратных двойных запросов c 17.08.2010 - 11:30.

Спустя 12 секунд (17.08.2010 - 15:30) FatCat_bot написал(а):
IP-адресу 201.102.180.223 закрыт доступ в форум по причине 50-кратных двойных запросов c 17.08.2010 - 11:30.

Спустя 8 секунд (17.08.2010 - 15:30) FatCat_bot написал(а):
IP-адресу 187.59.99.216 закрыт доступ в форум по причине 50-кратных двойных запросов c 17.08.2010 - 11:30.

Спустя 14 дней, 13 часов, 53 минуты, 42 секунды (2.09.2010 - 01:04) FatCat написал(а):
Подклеил маленький кусочек из логов бота этого форума.

Дикость какая - вручную ботов банить... Конечно же автоматом.
Только предусмотреть проверку на человека перед баном.

И авторазбан у нас автоматический через 240 часов.

Спустя 13 часов, 22 минуты, 45 секунд (2.09.2010 - 14:26) maximka787 написал(а):
А по поводу кода что посоветуете? smile.gif

Спустя 1 час, 32 секунды (2.09.2010 - 15:27) FatCat написал(а):
Цитата (maximka787 @ 2.09.2010 - 01:43)
походу вот тут что-то надо сделать \r\n.

Предпочитаю PHP_EOL.

Спустя 22 дня, 1 час, 50 минут, 43 секунды (24.09.2010 - 17:18) maximka787 написал(а):
Цитата (FatCat @ 2.09.2010 - 12:27)
Предпочитаю PHP_EOL.

Привет)) Что-то вылетел я совсем из дел) ну так вот.
Кот, что-то подобное реализовал. Только проблема. Как 10 раз обновляю, сервер дает ошибку 500. далее скачиваю файл htaccess вижу дописалась строка с моим IP, потом меняю в ней одну цифру чтобы заценить итог хорошей работы, заливаю обратно и всеравно ошибка 500. Может ли там проблема быть с кодировками, PHP_EOL или вообще я правильно хоть сделал? это уже 100% готовый скрипт (я так считаю), который будет в начале сайта.

<?
session_start();
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
echo "Вы обновили эту страницу ".$_SESSION['counter']++." раз. ";

if($_SESSION['counter']>10){
echo 'block IP';

file_put_contents('.htaccess', PHP_EOL.'denny from '.$_SERVER["REMOTE_ADDR"], FILE_APPEND);
unset($_SESSION['counter']);
}
?>

Спустя 2 часа, 59 минут, 2 секунды (24.09.2010 - 20:17) maximka787 написал(а):
помогите пожалуйста. оказалось, ошибка 500 это не запрет для моего IP. видимо правда скрипт неправильно дописывает строку. причем по новому IP тоже не пускает.

Спустя 1 час, 37 минут, 8 секунд (24.09.2010 - 21:54) maximka787 написал(а):
В общем я расстроился. Вспомнил, что блокировать IP в наше время нет смысла, тем более глобально htaccess-ом, тк много народа может входить по одному IP. Ну а вот такая конструкция хоть поможет от любителей положить на F5 что-нибудь или от злых подключений из командной строки злыми умышленниками?
<?
session_start();
if(isset($_SESSION['count'])){ $_SESSION['count']==0; }

if($_SESSION['count']>10){
echo 'вы привысили лимит обращений';
exit;
}else{
$_SESSION['count']++;
}
?>

Спустя 4 часа, 57 секунд (25.09.2010 - 01:55) FatCat написал(а):
У нас работает. Могу копипастнуть сюда рабочие коды.

Так как у нас единая система банов на несколько доменов, айпишники пишутся в базу, заодно и время попадания в бан там пишется, чтоб через 240 часов удалить запись, а значит и разбанить.
// Забираем эйчтиакцесс для работы:
$htaccess = file_get_contents($ibforums->vars['base_dir'].".htaccess");
// Презервативчик на случай битого файла:
if(!$htaccess)$htaccess = "#Options -Indexes".PHP_EOL."<Limit GET POST>".PHP_EOL."Order Allow,Deny".PHP_EOL."Deny from ".$ip.PHP_EOL."Allow from All".PHP_EOL."</Limit>".PHP_EOL;
// Удаляем все баны:
$htaccessc = explode(PHP_EOL,$htaccess);
$htaccess = Array();
foreach($htaccessc as $no_deny)if(!stristr($no_deny,"Deny from "))$htaccess[] = $no_deny;
$htaccess = implode(PHP_EOL,$htaccess);
// Берм список банов из БД:
$denyed = "";
$DB->query("SELECT bot_ip FROM ibf_antibot WHERE bot_key > ".$ban_level);
while( $row = $DB->fetch_row() )$denyed .= "Deny from ".$row['bot_ip'].PHP_EOL;
// Собираем файл:
$htaccess = str_replace("<Limit GET POST>".PHP_EOL."Order Allow,Deny".PHP_EOL,"<Limit GET POST>".PHP_EOL."Order Allow,Deny".PHP_EOL.$denyed,$htaccess);
// Обновляем .htaccess:
$fh = fopen($ibforums->vars['base_dir'].".htaccess", "w");
flock($fh,2);
fwrite($fh, $htaccess);
fclose($fh);

Спустя 4 минуты, 30 секунд (25.09.2010 - 01:59) FatCat написал(а):
Самое интересно тут - это поле bot_key в базе.
Мной давно составлен список действий как характерных для ботов, так и характерных для людей.
За действия свойственные ботам, в это поле цифра добавляется; за действия свойственные для людей цифра убавляется.

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

Спустя 1 день, 15 часов, 55 минут, 8 секунд (26.09.2010 - 17:54) maximka787 написал(а):
Спасиб. Щас поковыряюсь!

Спустя 27 минут, 31 секунда (26.09.2010 - 18:22) maximka787 написал(а):
Кстати я видел как делают dos атаки через командную строку. У меня вопрос мож не совсем в тему. А через эту строку юзер подключается по одной сессии? Существуют системы которые атакуют постоянно меняя сессии или нет?

Спустя 5 часов, 15 минут, 14 секунд (26.09.2010 - 23:37) FatCat написал(а):
Цитата (maximka787 @ 26.09.2010 - 19:22)
через эту строку юзер подключается по одной сессии?

У нас своя система сессий: у гостей по айпишнику, у залогиненных по айдишнику, у известных поисковых ботов по юзерагенту. Дублирования сессий исключены: даже если с двух разных компьютеров 2 разных человека войдут в один логин, они будут в одной сессии; любое количество запросов с одного айпишника всегда в одной сессии.

Спустя 37 минут, 2 секунды (27.09.2010 - 00:14) Ice написал(а):
Цитата (FatCat @ 27.09.2010 - 00:37)
2 разных человека войдут в один логин, они будут в одной сессии; любое количество запросов с одного айпишника всегда в одной сессии.

А вот это хрреново, если я понял правильно. Мы делали так, чтоб, если под твоим логином кто-то зашел, допустим, но ты еще сессию не закрыл, то есть, двумя словами, тебя вскрыли, то тебя сразу же вышибало из сессии. Но это был не форум, а чат, поточный, - там сразу поймешь, что что-то не так и успеешь влезть в анку и поменять данные.


_____________
..Работает - не трогай!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.