Скрыть объявление
Вышла новая версия XenForo 1.5.13 Nulled By XenForo.Info. Поспешите обновить свои форумы на новую версию прямо сейчас!

Блокировка не нужных ботов через .htaccess

Тема в разделе "[1.x] Техническая поддержка", создана пользователем butik, 7 янв 2017.

  1. TopicStarter Overlay
    butik

    butik Проверенные

    Сообщения:
    76
    Симпатии:
    30
    Здравствуйте.
    Форуму облегчить работу задумал через блокировку ненужных ботов, которые проходят постоянно по страницам ради сбора seo статистики (например semrush и т.д.)

    На одном из своих блогов использую список правил для блокировки ненужных поисковиков:
    Код:
    RewriteCond %{REQUEST_URI} !^/403.php$
    RewriteCond %{HTTP_USER_AGENT} .*Slurp.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*Ask\sJeeves.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*HP\sWeb\sPrintSmart.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*HTTrack.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*IDBot.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*Indy\sLibrary.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*ListChecker.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*MSIECrawler.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*NetCache.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*Nutch.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*RPT-HTTPClient.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*rulinki\.ru.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*Twiceler.* [OR]
    #RewriteCond %{HTTP_USER_AGENT} .*WebAlta.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*Webster\sPro.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*www\.cys\.ru.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*Wysigot.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*Yeti.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*Accoona.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*CazoodleBot.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*CFNetwork.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*ConveraCrawler.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*DISCo.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*Download\sMaster.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*FAST\sMetaWeb\sCrawler.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*Flexum\sspider$ [OR]
    RewriteCond %{HTTP_USER_AGENT} .*Gigabot.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*HTMLParser.* [OR]
    #RewriteCond %{HTTP_USER_AGENT} .*ia_archiver.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*ichiro.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*IRLbot.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*Java.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*km\.ru\sbot$ [OR]
    RewriteCond %{HTTP_USER_AGENT} .*kmSearchBot.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*libwww-perl.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*Lupa\.ru.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*LWP::Simple.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*lwp-trivial.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*Missigua.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*MJ12bot.* [OR]
    #RewriteCond %{HTTP_USER_AGENT} .*msnbot.* [OR]
    #RewriteCond %{HTTP_USER_AGENT} .*msnbot-media.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*Offline\sExplorer.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*OmniExplorer_Bot.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*PEAR.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*psbot.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*Python.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*rulinki\.ru.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*SMILE.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*Speedy.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*Teleport\sPro.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*TurtleScanner.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*voyager.* [OR]
    #RewriteCond %{HTTP_USER_AGENT} .*Webalta.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*WebCopier.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*WebData.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*WebZIP.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*Wget.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*Yanga.* [OR]
    RewriteCond %{HTTP_USER_AGENT} .*Yeti.*
    RewriteRule .* /403.php [F]
    
    # BAN ненужным поисковым ботам
    RewriteCond %{HTTP_USER_AGENT} ^.*Wget
    RewriteCond %{HTTP_USER_AGENT} ^.*HTMLParser [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*psbot [OR]
    #RewriteCond %{HTTP_USER_AGENT} ^.*msn [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*liveinternet [OR]
    #RewriteCond %{HTTP_USER_AGENT} ^.*WebAlta [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Yanga [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Twiceler [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Flexum [OR]
    #RewriteCond %{HTTP_USER_AGENT} ^.*Aport [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*Slurp [OR]
    #RewriteCond %{HTTP_USER_AGENT} ^.*msnbot [OR]
    #RewriteCond %{HTTP_USER_AGENT} ^.*ia_archiver [OR]
    RewriteCond %{HTTP_USER_AGENT} ^.*libwww-perl
    RewriteRule ^(.*)$ - [F,L]
    Правила скопированы на какомто ресурсе давно, некоторые строки закоментированы #

    Как думаете, целесообразно применить список для xemforo движка (в начало .htaccess) ?

    Поискал, оказывается по соседству есть еще тема защита через htaccess
     
    Последнее редактирование: 7 янв 2017
  2. Smalesh

    Smalesh Проверенные

    Сообщения:
    2091
    Симпатии:
    3648
    Пол:
    Мужской
    Hope и Mirovinger нравится это.
  3. TopicStarter Overlay
    butik

    butik Проверенные

    Сообщения:
    76
    Симпатии:
    30
    Список не маленький))
    Интересная часть блока по юзерагентам
    Код:
    (80legs|360Spider|Aboundex|Abonti|Acunetix|^AIBOT|^Alexibot|Alligator|AllSubmitter|Apexoo|^asterias|^attach|^BackDoorBot|^BackStreet|^BackWeb|Badass|Bandit|Baid|Baiduspider|^BatchFTP|^Bigfoot|^Black.Hole|^BlackWidow|BlackWidow|^BlowFish|Blow|^BotALot|Buddy|^BuiltBotTough|^Bullseye|^BunnySlippers|BBBike|^Cegbfeieh|^CheeseBot|^CherryPicker|^ChinaClaw|^Cogentbot|CPython|Collector|Copier|^CopyRightCheck|^cosmos|^Crescent|CSHttp|^Custo|^Demon|^Devil|^DISCo|^DIIbot|discobot|^DittoSpyder|Download.Demon|Download.Devil|Download.Wonder|^dragonfly|^Drip|^eCatch|^EasyDL|^ebingbong|^EirGrabber|^EmailCollector|^EmailSiphon|^EmailWolf|^EroCrawler|^Exabot|^Express|Extractor|^EyeNetIE|FHscan|^FHscan|^flunky|^Foobot|^FrontPage|GalaxyBot|^gotit|Grabber|^GrabNet|^Grafula|^Harvest|^hloader|^HMView|^HTTrack|httrack|HTTrack|htmlparser|^humanlinks|^IlseBot|Image.Stripper|Image.Sucker|imagefetch|^InfoNaviRobot|^InfoTekies|^Intelliseek|^InterGET|^Iria|^Java|Java|^Jakarta|^JennyBot|^JetCar|JikeSpider|^JOC|^JustView|^Jyxobot|^Kenjin.Spider|^Keyword.Density|libwww|^larbin|LeechFTP|LeechGet|^LexiBot|^lftp|^libWeb|^likse|^LinkextractorPro|^LinkScan|^LNSpiderguy|^LinkWalker|msnbot|MSIECrawler|MJ12bot|MegaIndex|^Magnet|^Mag-Net|^MarkWatch|Mass.Downloader|masscan|^Mata.Hari|^Memo|^MIIxpc|^NAMEPROTECT|^Navroad|^NearSite|^NetAnts|^Netcraft|^NetMechanic|^NetSpider|^NetZIP|^NextGenSearchBot|^NG|^NICErsPRO|^niki-bot|^NimbleCrawler|^Ninja|^Nmap|nmap|^NPbot|Offline.Explorer|Offline.Navigator|OpenLinkProfiler|^Octopus|^Openfind|^OutfoxBot|Pixray|probethenet|proximic|^PageGrabber|^pavuk|^pcBrowser|^Pockey|^ProPowerBot|^ProWebWalker|^psbot|^Pump|python-requests|^QueryN.Metasearch|^RealDownload|Reaper|^Reaper|^Ripper|Ripper|Recorder|^ReGet|^RepoMonkey|^RMA|scanbot|^Stripper|^Sucker|Siphon|Siteimprove|^SiteSnagger|SiteSucker|^SlySearch|^SmartDownload|^Snake|^Snapbot|^Snoopy|Sosospider|^sogou|spbot|^SpaceBison|^spanner|^SpankBot|Spinn3r|^Sqworm|Sqworm|Stripper|Sucker|^SuperBot|SuperHTTP|^SuperHTTP|^Surfbot|^suzuran|^Szukacz|^tAkeOut|^Teleport|^Telesoft|^TurnitinBot|^The.Intraformant|^TheNomad|^TightTwatBot|^Titan|^True_Robot|^turingos|^TurnitinBot|^URLy.Warning|^Vacuum|^VCI|^VoidEYE|^WebAuto|^WebBandit|^WebCopier|^WebEnhancer|^WebFetch|^Web.Image.Collector|^WebLeacher|^WebmasterWorldForumBot|WebPix|^WebReaper|^WebSauger|Website.eXtractor|^Webster|^WebStripper|^WebWhacker|^WebZIP|Whack|Whacker|^Widow|Widow|WinHTTrack|^WISENutbot|WWWOFFLE|^WWWOFFLE|^WWW-Collector-E|^Xaldon|^Xenu|Zade|^Zeus|ZmEu|^Zyborg|SemrushBot|WebFuck^)
     
  4. Smalesh

    Smalesh Проверенные

    Сообщения:
    2091
    Симпатии:
    3648
    Пол:
    Мужской
    Не в списке дело (он далеко не актуален под наши ресурсы), дело в реализации - на map и однострочное правило для виртсервера в nginx.conf
     
    Hope нравится это.
  5. n0rt

    n0rt Проверенные

    Сообщения:
    19
    Симпатии:
    17
    Пол:
    Мужской
    тоже блочу через nginx
     
  6. TopicStarter Overlay
    butik

    butik Проверенные

    Сообщения:
    76
    Симпатии:
    30
    Пример блокировки, как через nginx - можно?
     
  7. n0rt

    n0rt Проверенные

    Сообщения:
    19
    Симпатии:
    17
    Пол:
    Мужской
    if ($http_user_agent ~* "^WebCopier"){ return 403; }
     
    butik нравится это.
  8. Smalesh

    Smalesh Проверенные

    Сообщения:
    2091
    Симпатии:
    3648
    Пол:
    Мужской
    Пример написан по ссылке из поста #2 - map в главном конфиге + один if в виртуальном. Вариант
    более костылен:
    1. map работает быстрее, чем if, и чем больше будет список и трафик, тем больше это будет заметно. На каждый if nginx будет строить две ветки конфига, где if true и где if false. Если это будет 100 ботов, то получится 200 веток, хоть описывать каждый бот отдельным ифом или объединять их через | (nginx будет раскрывать условия в линейный вид).
    2. регулярки сами по себе тяжелые операции. Нефиг плодить сущности без необходимости.
    3. а если это не единичный конфиг, а таких конфигов десяток? Появляются сложности с поддержкой всего этого дела.
    Поэтому, через map определяем переменную
    Код:
    map $http_user_agent $bad_bot {
            default         0;
            ~*malicious     1;
            ~*backdoor      1;
            ~*netcrawler    1;
            ~Antivirx       1;
            ~Arian          1;
            ~webbandit      1;
    }
    , а через один единственный if в конфиге баним бота.
    Код:
    if ($bad_bot) { return 444; }
    Оставлю это здесь
    Пожалуйста, войдите или зарегистрируйтесь для просмотра скрытого текста.
    но вообще на map можно расписать много чего полезного, например строить условия по трем-четырем переменным без нагромождения костылей из ифов.
     
    butik, grisha2217, Mirovinger и 2 другим нравится это.
www.megastock.ru

Email: XenForo.Info@yandex.ru. Skype: XenForo.Info