Запрет компам,арбузерам и ip

Discussion in 'Безопасность и Анонимность' started by TLS, 26 Jun 2008.

  1. TLS

    TLS New Member

    Joined:
    25 Dec 2007
    Messages:
    29
    Likes Received:
    0
    Reputations:
    0
    Как можно через .htaccess запретить вход определенным браузерам например Mozilla/4.00 и ip допустим запретить Все ip которые начинаются на 195.189.1xx.xxx?
     
  2. spider-intruder

    spider-intruder Elder - Старейшина

    Joined:
    9 Dec 2005
    Messages:
    700
    Likes Received:
    339
    Reputations:
    37
    deny from 195.189.1.

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

    TLS New Member

    Joined:
    25 Dec 2007
    Messages:
    29
    Likes Received:
    0
    Reputations:
    0
    На счет ип понятно. Но вот ты говоришь по браузеру никак... А я встречал сайты на которые с компа зайти не возможно. Возможно думаю это можно обойти,но тем не менее. На фанке именно такое используется. Может скриптом можно такое реализовать?
     
  4. spider-intruder

    spider-intruder Elder - Старейшина

    Joined:
    9 Dec 2005
    Messages:
    700
    Likes Received:
    339
    Reputations:
    37
    скриптом можно. $_server['http_user_agent']
     
  5. TLS

    TLS New Member

    Joined:
    25 Dec 2007
    Messages:
    29
    Likes Received:
    0
    Reputations:
    0
    Можешь подробней написать как это реализовать? В файл нужный инклюдить или еще че.
     
  6. TLS

    TLS New Member

    Joined:
    25 Dec 2007
    Messages:
    29
    Likes Received:
    0
    Reputations:
    0
    Или допустим мне нужно будет два юзер агента запретить или три. Как это сделать лучше. Напиши плз подробнее.
     
  7. spider-intruder

    spider-intruder Elder - Старейшина

    Joined:
    9 Dec 2005
    Messages:
    700
    Likes Received:
    339
    Reputations:
    37
    В начале скрипта читаешь в переменную это значение

    $user_agent=$_server['http_user_agent'];

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

    Можешь сохранить в файл основные браузеры
    Потом разбить строку командой array explode ( string separator, string string [, int limit] )
    на массив элементов и в цикле искать в переменной элементы массива - выполняя нужные тебе действия
     
    #7 spider-intruder, 26 Jun 2008
    Last edited: 26 Jun 2008
  8. TLS

    TLS New Member

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

    Whirt Elder - Старейшина

    Joined:
    24 Jun 2008
    Messages:
    23
    Likes Received:
    86
    Reputations:
    5
    Примеры запрета браузеров по USER-AGENT через файл .htaccess можно посмотреть здесь:
    _http://www.javascriptkit.com/howto/htaccess13.shtml .

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


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


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

    Блокировка по User-Agent: прописать в .htaccess
    Code:
    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>");
     }
    }

    ?>
     
    #9 Whirt, 26 Jun 2008
    Last edited: 26 Jun 2008
    1 person likes this.
  10. TLS

    TLS New Member

    Joined:
    25 Dec 2007
    Messages:
    29
    Likes Received:
    0
    Reputations:
    0
    Отлично... Лучше б на испанском дал адрес. Гг.
     
  11. TLS

    TLS New Member

    Joined:
    25 Dec 2007
    Messages:
    29
    Likes Received:
    0
    Reputations:
    0
    Тут на этом форуме кто нить знает вообще как это делается?
     
  12. Whirt

    Whirt Elder - Старейшина

    Joined:
    24 Jun 2008
    Messages:
    23
    Likes Received:
    86
    Reputations:
    5
    TLS, открой глаза и перечитай инфу по линку который я дал. Блокировка браузеров делается через .htaccess. Я думаю даже не надо знать английский, чтобы понять примеры из линка.
    Фильтрацию по IP можно сделать в PHP, как я сказал выше.

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


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

    TLS New Member

    Joined:
    25 Dec 2007
    Messages:
    29
    Likes Received:
    0
    Reputations:
    0
    1.уважаемый,мне твои линки не нужны,и рассуждать и предполагать тут тоже лишнее. Был задан конкретный вопрос,и хотелось бы получить ответ знающего человека который не будет тут фантазировать и думать,а просто тупо Даст конкретный пример такому чайнику как я.
    2. Линк на ресурс который ты дал-не вижу в нем вообще смысла и не понимаю его,так Если по твоему это защита от определенных арбузеров,то че то вместо известных всему миру opera,mozilla,ie,и других не говоря уже о мобильных-я не вижу!
    3. Ты считаешь Если я бы знал то,что спрашиваю-стал бы создавать тут тему? Конечно нет! Поэтому хотелось бы конкретный ответ.
    4. блокировка по конкретному ip мне не нужна,так же не нужен скрипт php который будет якобы их блокировать.
     
    #13 TLS, 26 Jun 2008
    Last edited: 26 Jun 2008
  14. Whirt

    Whirt Elder - Старейшина

    Joined:
    24 Jun 2008
    Messages:
    23
    Likes Received:
    86
    Reputations:
    5
    по линку даны примеры блокировки по USER-AGENT'у, а что тебе мешает вписать туда свои юзерагенты, которые не хочешь пропускать ?))))
    Ну, как ? , ты же сам хотел по маске фильтрить IP, вот и проверяй первые два октета и блочь , я тебе и так все по полочкам разложил, пошевели мозгами, на готовом далеко не уедешь)
     
    #14 Whirt, 26 Jun 2008
    Last edited: 23 Jul 2008
  15. TLS

    TLS New Member

    Joined:
    25 Dec 2007
    Messages:
    29
    Likes Received:
    0
    Reputations:
    0
    Я с телефона много мозгами не нашевелю. Тем более чтоб ими шевелить-нужны начальные знания.
     
  16. TLS

    TLS New Member

    Joined:
    25 Dec 2007
    Messages:
    29
    Likes Received:
    0
    Reputations:
    0
    RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4.00 ^.* -[F,L]
    Так что ли? Похоже что то не так
     
  17. Whirt

    Whirt Elder - Старейшина

    Joined:
    24 Jun 2008
    Messages:
    23
    Likes Received:
    86
    Reputations:
    5
    Вот, накатал тебе .htaccess )
    Code:
    RewriteEngine On
    RewriteCond %{HTTP_USER_AGENT} Firefox
    RewriteRule ^.* - [F,L]
    
    Не будет пускать огнелисов, а всякие ослоподобные а-ля IE входят без проблем.

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

    TLS New Member

    Joined:
    25 Dec 2007
    Messages:
    29
    Likes Received:
    0
    Reputations:
    0
    Сейчас попробую только с мозилой. Поиск юзал ,нифига хорошего не нашел
     
  19. zythar

    zythar Elder - Старейшина

    Joined:
    16 Feb 2008
    Messages:
    517
    Likes Received:
    109
    Reputations:
    5
    имхо блок по юзер агенту нуно делать пхп скриптом все таки а не хтаксессом.
    да блок по айпишнику мона организовать на пхп.
    все в одном флаконе так сказать.

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

    PHP:
    if (strstr($_SERVER['HTTP_USER_AGENT'], $user_agent) || strstr($_SERVER['REMOTE_ADDR'], "ip_address") {
    print 
    "fuck u";
    }
    или что то типа этого. если запрещеных браузеров несколько то нуно делать в цикле


    upd

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


    иди на север друг мой. строго и прямо на север (*
     
    #19 zythar, 26 Jun 2008
    Last edited: 26 Jun 2008
  20. TLS

    TLS New Member

    Joined:
    25 Dec 2007
    Messages:
    29
    Likes Received:
    0
    Reputations:
    0
    Самое интересное то,что подобных тут скриптов на этом форуме писали очень много-но похоже они когда питались ни кто их не проверял на работоспособность. Ни один не работает.