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

Форум АНТИЧАТ (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

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


Время: 07:20