Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
Запрет компам,арбузерам и ip |

26.06.2008, 09:48
|
|
Познающий
Регистрация: 25.12.2007
Сообщений: 30
Провел на форуме: 41651
Репутация:
0
|
|
Запрет компам,арбузерам и ip
Как можно через .htaccess запретить вход определенным браузерам например Mozilla/4.00 и ip допустим запретить Все ip которые начинаются на 195.189.1xx.xxx?
|
|
|

26.06.2008, 10:06
|
|
Постоянный
Регистрация: 10.12.2005
Сообщений: 939
Провел на форуме: 3886281
Репутация:
929
|
|
deny from 195.189.1.
по браузерам никак
|
|
|

26.06.2008, 10:17
|
|
Познающий
Регистрация: 25.12.2007
Сообщений: 30
Провел на форуме: 41651
Репутация:
0
|
|
На счет ип понятно. Но вот ты говоришь по браузеру никак... А я встречал сайты на которые с компа зайти не возможно. Возможно думаю это можно обойти,но тем не менее. На фанке именно такое используется. Может скриптом можно такое реализовать?
|
|
|

26.06.2008, 10:24
|
|
Постоянный
Регистрация: 10.12.2005
Сообщений: 939
Провел на форуме: 3886281
Репутация:
929
|
|
скриптом можно. $_server['http_user_agent']
|
|
|

26.06.2008, 10:37
|
|
Познающий
Регистрация: 25.12.2007
Сообщений: 30
Провел на форуме: 41651
Репутация:
0
|
|
Можешь подробней написать как это реализовать? В файл нужный инклюдить или еще че.
|
|
|

26.06.2008, 10:43
|
|
Познающий
Регистрация: 25.12.2007
Сообщений: 30
Провел на форуме: 41651
Репутация:
0
|
|
Или допустим мне нужно будет два юзер агента запретить или три. Как это сделать лучше. Напиши плз подробнее.
|
|
|

26.06.2008, 10:48
|
|
Постоянный
Регистрация: 10.12.2005
Сообщений: 939
Провел на форуме: 3886281
Репутация:
929
|
|
В начале скрипта читаешь в переменную это значение
$user_agent=$_server['http_user_agent'];
А потом ишещь вхождения нужных тебе браузеров в скрипте.
Можешь сохранить в файл основные браузеры
Потом разбить строку командой array explode ( string separator, string string [, int limit] )
на массив элементов и в цикле искать в переменной элементы массива - выполняя нужные тебе действия
Последний раз редактировалось spider-intruder; 26.06.2008 в 10:50..
|
|
|

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

26.06.2008, 10:58
|
|
Участник форума
Регистрация: 24.06.2008
Сообщений: 105
Провел на форуме: 674665
Репутация:
276
|
|
Примеры запрета браузеров по 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>");
}
}
?>
Последний раз редактировалось Whirt; 26.06.2008 в 18:03..
|
|
|

26.06.2008, 11:08
|
|
Познающий
Регистрация: 25.12.2007
Сообщений: 30
Провел на форуме: 41651
Репутация:
0
|
|
Отлично... Лучше б на испанском дал адрес. Гг.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|