Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Защита ОС: вирусы, антивирусы, файрволы. (https://forum.antichat.xyz/forumdisplay.php?f=80)
-   -   Запрет компам,арбузерам и ip (https://forum.antichat.xyz/showthread.php?t=75050)

TLS 26.06.2008 09:48

Запрет компам,арбузерам и ip
 
Как можно через .htaccess запретить вход определенным браузерам например Mozilla/4.00 и ip допустим запретить Все ip которые начинаются на 195.189.1xx.xxx?

spider-intruder 26.06.2008 10:06

deny from 195.189.1.

по браузерам никак

TLS 26.06.2008 10:17

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

spider-intruder 26.06.2008 10:24

скриптом можно. $_server['http_user_agent']

TLS 26.06.2008 10:37

Можешь подробней написать как это реализовать? В файл нужный инклюдить или еще че.

TLS 26.06.2008 10:43

Или допустим мне нужно будет два юзер агента запретить или три. Как это сделать лучше. Напиши плз подробнее.

spider-intruder 26.06.2008 10:48

В начале скрипта читаешь в переменную это значение

$user_agent=$_server['http_user_agent'];

А потом ишещь вхождения нужных тебе браузеров в скрипте.

Можешь сохранить в файл основные браузеры
Потом разбить строку командой array explode ( string separator, string string [, int limit] )
на массив элементов и в цикле искать в переменной элементы массива - выполняя нужные тебе действия

TLS 26.06.2008 10:55

ни че не понял. Если я сейчас впишу то что ты написал-ничего не произойдет либо будет ошибка. Хотелось бы сделать так Если можно: файл userlog.php будет содержать Браузеры которым запрещено заходить на сайт. Вписываю в в корне index.php require('../incl/userlog.php'); и Все. Запрещенные юзер агенты отдыхают. Допустим Mozilla/4.00 и Opera/7.50. но вот вся соль в том,что я не знаю че должно быть в файле userlog.php

Whirt 26.06.2008 10:58

Примеры запрета браузеров по USER-AGENT через файл .htaccess можно посмотреть здесь:
_http://www.javascriptkit.com/howto/htaccess13.shtml .

Все остальное (тот же блок по IP) легко реализуется через PHP. Если надо - обращайся, напишу тебе такой скриптик.


======
UPD
======


Если кому понадобиться, но лень читать весь последующий флейм/непонимание товарища TLS, вот ответы на поставленные вопросы:

Блокировка по User-Agent: прописать в .htaccess
Код:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} Mozilla\/4.0
RewriteRule ^.* - [F,L]

Блокировка диапазона по маске IP
PHP код:

<?
/* IPADDR BanMask Filter Script by Whirt

                __     __        __
     .--.--.--.|  |--.|__|.----.|  |_
     |  |  |  ||     ||  ||   _||   _|
     |________||__|__||__||__|  |____|

                [Antichat.ru]


// ваши бан-маски. синтаксис приведен ниже  //
// XXX - все адреса диапазона текущего октета */
$banmask[] = "87.XXX.XXX.XXX";
$banmask[] = "166.66.XXX.XXX";
$banmask[] = "157.150.123.XXX";
$banmask[] = "137.112.10.17";


function 
check_deny($mask)
{
 
$idx preg_match("#(.*)\.(.*)\.(.*)\.(.*)#"$mask$ban_args);
 
$idx preg_match("#(.*)\.(.*)\.(.*)\.(.*)#"$_SERVER["REMOTE_ADDR"], $ip_args);
 for(
$x=1;$x<=4;$x++)
 {
 if ((
$ban_args[$x] == $ip_args[$x]) || $ban_args[$x] == "XXX")
 return 
"banned";
 return 
"clear";
 }
}
foreach (
$banmask as $key)
{
 if (
check_deny($key)=="banned")
 {
 
header("HTTP/1.0 403 Forbidden"); die("<html><h1>403 - Forbidden</h1>You dont have access to this server</html>");
 }
}

?>


TLS 26.06.2008 11:08

Отлично... Лучше б на испанском дал адрес. Гг.

TLS 26.06.2008 12:19

Тут на этом форуме кто нить знает вообще как это делается?

Whirt 26.06.2008 12:39

TLS, открой глаза и перечитай инфу по линку который я дал. Блокировка браузеров делается через .htaccess. Я думаю даже не надо знать английский, чтобы понять примеры из линка.
Фильтрацию по IP можно сделать в PHP, как я сказал выше.

Алгоритм примерный я тебе щас накидаю)
Я себе это представляю так:
1) Получаем REMOTE_ADDR от клиента.
2) IP адрес разбиваем на октеты (регулярным выражением, или через строковые функции, неважно), т.е. получаем 4 переменные, содержащие по октету.
3) Дальше уже колдуй со своими рулесами , как душе, угодно.


UPD: Да, забыл, в случае, блокировки - выдаем посетителю хедер 403 (denied)
через ф-ю Header, в ином случае пользователь спокойно входит на сайт.

TLS 26.06.2008 13:17

1.уважаемый,мне твои линки не нужны,и рассуждать и предполагать тут тоже лишнее. Был задан конкретный вопрос,и хотелось бы получить ответ знающего человека который не будет тут фантазировать и думать,а просто тупо Даст конкретный пример такому чайнику как я.
2. Линк на ресурс который ты дал-не вижу в нем вообще смысла и не понимаю его,так Если по твоему это защита от определенных арбузеров,то че то вместо известных всему миру opera,mozilla,ie,и других не говоря уже о мобильных-я не вижу!
3. Ты считаешь Если я бы знал то,что спрашиваю-стал бы создавать тут тему? Конечно нет! Поэтому хотелось бы конкретный ответ.
4. блокировка по конкретному ip мне не нужна,так же не нужен скрипт php который будет якобы их блокировать.

Whirt 26.06.2008 13:28

Цитата:

2. Линк на ресурс который ты дал-не вижу в нем вообще смысла и не понимаю его,так Если по твоему это защита от определенных арбузеров,то че то вместо известных всему миру opera,mozilla,ie,и других не говоря уже о мобильных-я не вижу!
по линку даны примеры блокировки по USER-AGENT'у, а что тебе мешает вписать туда свои юзерагенты, которые не хочешь пропускать ?))))
Цитата:

4. блокировка по конкретному ip мне не нужна,так же не нужен скрипт php который будет якобы их блокировать.
Ну, как ? , ты же сам хотел по маске фильтрить IP, вот и проверяй первые два октета и блочь , я тебе и так все по полочкам разложил, пошевели мозгами, на готовом далеко не уедешь)

TLS 26.06.2008 13:43

Я с телефона много мозгами не нашевелю. Тем более чтоб ими шевелить-нужны начальные знания.

TLS 26.06.2008 13:57

RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4.00 ^.* -[F,L]
Так что ли? Похоже что то не так

Whirt 26.06.2008 14:14

Вот, накатал тебе .htaccess )
Код:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} Firefox
RewriteRule ^.* - [F,L]

Не будет пускать огнелисов, а всякие ослоподобные а-ля IE входят без проблем.

З.Ы.
Тут очень подробно расписано, что , как и где (теперь на русском по заявкам трудящихся )))
_http://know-how.mc3.telecom.by/SintaksisModRewrite
Аффтар, неужели так трудно поюзать поиск ? )))

TLS 26.06.2008 14:21

Сейчас попробую только с мозилой. Поиск юзал ,нифига хорошего не нашел

zythar 26.06.2008 14:21

имхо блок по юзер агенту нуно делать пхп скриптом все таки а не хтаксессом.
да блок по айпишнику мона организовать на пхп.
все в одном флаконе так сказать.

нуно простенький скрипт накидать. что то типа:

PHP код:

if (strstr($_SERVER['HTTP_USER_AGENT'], $user_agent) || strstr($_SERVER['REMOTE_ADDR'], "ip_address") {
print 
"fuck u";


или что то типа этого. если запрещеных браузеров несколько то нуно делать в цикле


upd

дорогой мой. нельзя быть настолько тупым. тебе реально трудно полистать пару справочников по РНР и самому написать этот скрипт да? тебе же тут норм люди нормально объяснили что нуно делать. неееет. тебе нуно все на блюдечке подавать.


иди на север друг мой. строго и прямо на север (*

TLS 26.06.2008 14:24

Цитата:

Сообщение от zythar
имхо блок по юзер агенту нуно делать пхп скриптом все таки а не хтаксессом.
да блок по айпишнику мона организовать на пхп.
все в одном флаконе так сказать.

нуно простенький скрипт накидать. что то типа:

Код:

if ($_SERVER['HTTP_USER_AGENT']==$user_agent || strstr($_SERVER['REMOTE_ADDR'], "ip_address") {
print "fuck u";
}

или что то типа этого. если запрещеных браузеров несколько то нуно делать в цикле

Самое интересное то,что подобных тут скриптов на этом форуме писали очень много-но похоже они когда питались ни кто их не проверял на работоспособность. Ни один не работает.

Whirt 26.06.2008 14:30

zyhtar, протев (с)
.htaccess нормально справляется с поставленной задачей, поддерживает регулярные выражения, и много еще чего.

если запрещенных браузеров несколько, то нужно использовать флаг [OR] (ИЛИ)
Пример:
Цитата:

RewriteCond условие1 [OR]
RewriteCond условие2 [OR]
RewriteCond условие3
RewriteRule преобразование
Примечание: по дефолту, все условия считываются с флагом "И".

Цитата:

if ($_SERVER['HTTP_USER_AGENT']==$user_agent || strstr($_SERVER['REMOTE_ADDR'], "ip_address") {
print "fuck u";
}
Я дико извиняюсь, но это бред: что проверка USER_AGENT, (здесь нужна ИМЕННО регуляра, всех заипешься вписывать), что проверка IP - ТС просил явно по диапазону a.b.xxx.xxx, а не статик, как у тебя,
т.е.
извлекаем октеты a и b , и определяем их принадлежность к запрещенному диапазону)

TLS 26.06.2008 14:48

Цитата:

Сообщение от zythar
имхо блок по юзер агенту нуно делать пхп скриптом все таки а не хтаксессом.
да блок по айпишнику мона организовать на пхп.
все в одном флаконе так сказать.

нуно простенький скрипт накидать. что то типа:

PHP код:

if (strstr($_SERVER['HTTP_USER_AGENT'], $user_agent) || strstr($_SERVER['REMOTE_ADDR'], "ip_address") {
print 
"fuck u";


или что то типа этого. если запрещеных браузеров несколько то нуно делать в цикле


upd

дорогой мой. нельзя быть настолько тупым. тебе реально трудно полистать пару справочников по РНР и самому написать этот скрипт да? тебе же тут норм люди нормально объяснили что нуно делать. неееет. тебе нуно все на блюдечке подавать.


иди на север друг мой. строго и прямо на север (*

А у тебя не было такой ситуации что ты находишься там,что нет ни справочников ни книг?

TLS 26.06.2008 14:57

Цитата:

Сообщение от Whirt
Вот, накатал тебе .htaccess )
Код:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} Firefox
RewriteRule ^.* - [F,L]

Не будет пускать огнелисов, а всякие ослоподобные а-ля IE входят без проблем.

RewriteEngine On RewriteCond %{HTTP_USER_AGENT} Mozilla/4.0 RewriteRule ^.* - [F,L]
мозила как гуляла по сайту так и гуляет.

zythar 26.06.2008 15:02

справночники и книги найти всегда можно если есть инет.

Whirt

естесвенно мона написать и лучше того что я накидал (*
это я так просто чтобы тс ознакомился что мона сделать

Whirt 26.06.2008 15:07

Tls, а у тебя лиса случаем не 3я стоит? Там мозилла 5.0 юзер-агент, для справки.

Щас я тебе дописываю уже твой скрипт))) Может и другим пригодится)

TLS 26.06.2008 15:17

Цитата:

Сообщение от zythar
справночники и книги найти всегда можно если есть инет.

Может форумы закроешь Все раз по твоему есть гугл и справочники?

TLS 26.06.2008 15:19

Цитата:

Сообщение от Whirt
Tls, а у тебя лиса случаем не 3я стоит? Там мозилла 5.0 юзер-агент, для справки.

Щас я тебе дописываю уже твой скрипт))) Может и другим пригодится)

Лисы нет вообще никакой. гг И мозила 4.0 у меня лазиет а не 5.0. Как она мне надоела уже

TLS 26.06.2008 15:21

Вот щас по ip ее шарахнул гг. Пока пропала. Но не надолго.

Whirt 26.06.2008 15:24

Вот держи кодес:
PHP код:

<?
/* IPADDR BanMask Filter Script by Whirt

                __     __        __
     .--.--.--.|  |--.|__|.----.|  |_
     |  |  |  ||     ||  ||   _||   _|
     |________||__|__||__||__|  |____|

                [Antichat.ru]


// ваши бан-маски. синтаксис приведен ниже  //
// XXX - все адреса диапазона текущего октета */
$banmask[] = "87.XXX.XXX.XXX";
$banmask[] = "166.66.XXX.XXX";
$banmask[] = "157.150.123.XXX";
$banmask[] = "137.112.10.17";


function 
check_deny($mask)
{
 
$idx preg_match("#(.*)\.(.*)\.(.*)\.(.*)#"$mask$ban_args);
 
$idx preg_match("#(.*)\.(.*)\.(.*)\.(.*)#"$_SERVER["REMOTE_ADDR"], $ip_args);
 for(
$x=1;$x<=4;$x++)
 {
 if ((
$ban_args[$x] == $ip_args[$x]) || $ban_args[$x] == "XXX")
 return 
"banned";
 return 
"clear";
 }
}
foreach (
$banmask as $key)
{
 if (
check_deny($key)=="banned")
 {
 
header("HTTP/1.0 403 Forbidden"); die("<html><h1>403 - Forbidden</h1>You dont have access to this server</html>");
 }
}

?>

Вроде все учел, если что не так в коде - поправьте.
З.Ы.
Надеюсь, вопросов больше нет?

========
UPD:
========


Цитата:

RewriteEngine On RewriteCond %{HTTP_USER_AGENT} Mozilla/4.0 RewriteRule ^.* - [F,L]
мозила как гуляла по сайту так и гуляет.
TLS, / , это спецсимвол регулярок.
Попробуй экранировать его:
Код:

RewriteEngine On RewriteCond %{HTTP_USER_AGENT} Mozilla\/4.0 RewriteRule ^.* - [F,L]
мозила как гуляла по сайту так и гуляет.


TLS 26.06.2008 15:29

И че мне с этим делать?

zythar 26.06.2008 15:31

кидай на сервак, инклюдь в файлы, и юзай функцию которую написал Whirt.


в поисковиках можно найти лишь 90% информации (*

TLS 26.06.2008 15:32

В логах указан ip 86.110.176.33

Mozilla/4.0

Whirt 26.06.2008 15:35

ROFL одним словом))) Уже и скрипт написали тебе, пользуйся-нехочу)
Короче: кладешь скрипт на сервер, прописываешь банмаски в скрипте по образцу, который я оставил в комментах,
далее :
в index.php твоем пишешь:
Код:

include("ipaddr_filter.php");
Важное замечание:
Необходимо инклюдить скрипт ДО ТОГО, как будут отосланы хедеры, т.е. любая информация а-ля всякие сообщения на экран, итд.
В общем, в самом верху инклюдь, и все будет ок.

TLS 26.06.2008 15:56

Цитата:

Сообщение от Whirt
ROFL одним словом))) Уже и скрипт написали тебе, пользуйся-нехочу)
Короче: кладешь скрипт на сервер, прописываешь банмаски в скрипте по образцу, который я оставил в комментах,
далее :
в index.php твоем пишешь:
Код:

include("ipaddr_filter.php");
Важное замечание:
Необходимо инклюдить скрипт ДО ТОГО, как будут отосланы хедеры, т.е. любая информация а-ля всякие сообщения на экран, итд.
В общем, в самом верху инклюдь, и все будет ок.

Вообщем скопировал Все в файл. Этот файл require ('userlog.php'); в самом верху. Ошибка-Белый экран.

TLS 26.06.2008 16:12

ребята не работает этот код. Белый экран и Все тут что бы я ни делал. Похоже экранизация помогла. Мозила пока пропала.

Whirt 26.06.2008 16:13

содержимое index.php в студию (с)

UPD: код рабочий, я лично тестил)

zythar 26.06.2008 16:17

блииин..
тс. то что написал вирт есть функция. ее вызвать нужно.

TLS 26.06.2008 16:19

Хм ну не индекс же думаю мой виноват. С ним как раз Все в порядке,сайтег пашет как миленький и Все инклюдиццо нормально. Возможно при копировани появились лишние пробелы в коде,такое бывает у меня часто. Вроде убрал лишние пробелы но тоже самое. Файл бы выложить как нить но почему то на этом форуме ни че нельзя выкладывать

zythar 26.06.2008 16:21

ты функцию check_deny вызывал?

TLS 26.06.2008 16:21

Цитата:

Сообщение от zythar
блииин..
тс. то что написал вирт есть функция. ее вызвать нужно.

Сори чет я не понял... Каво надо вызывать и куда? ыы


Время: 10:16