مسدود کردن رباتهای مخرب از طریق htaccess
رویاتهای بد یا Bad Bots بسته به نظر افراد مختلف و موقعیتهای گوناگون، تعاریف متعددی دارند اما آنچه بین تمامی آنها مشترک بوده این است که آنها خزندگان تحت وب یا اصطلاحاً Spider هایی هستند که زیانشان بسیار بیشتر از سودرسانی آنها است. روباتهای برداشت و ضبط کنندهی ایمیل یا Email Harvester Bots از این قبیلند. آنها وارد وبسایتتان شده و آدرس ایمیلهایی که در صفحههای مختلف مثلا صفحهی «تماس با ما» ثبت شده را شناسایی و ذخیره میکنند و اندکی بعد به آن آدرسها، ایمیلهای تبلیغاتی ناخواسته و Spam ارسال میکنند. از طرف دیگر روبات و برنامههایی وجود دارند که وظیفهشان بررسی و بازدید وبسایت و دانلود تمامی مطالب آن است تا بعداً به صورت آفلاین یا بدون اینترنت نیز بتوان آنها را مشاهده و بررسی کرد؛ به این رباتها Site Rippers و یا Offline Readers میگویند. در هر حالت این رباتها قسمتی از ترافیک و منابع سختافزاری وبسایت شما را بدون اجازهی قبلی مصرف میکنند.
بسیاری بر این باورند که با استفاده از فایل robots.txt میتوان از بازدید و Crawl این روباتها جلوگیری کرد. robots.txt فایلی است که به رباتها به خصوص رباتهای موتورهای جستوجو از جمله روباتهای گوگل دستور میدهد تا مسیری از وبسایت را بازدید و Index نکنند. مثلاً با استفاده از دستورهایی که در این فایل لحاظ میشود، از گوگل خواسته میشود تا دایرکتوری /images را در وبسایت مورد نظر بازدید نکند؛ زیرا ممکن است از دید مدیر وبسایت نتیجهی این کار غیر مفید بوده و مصرف بیهودهی ترافیک یا Bandwidth وبسایت را به همراه داشته باشد. نکتهی بسیار مهمی که در این خصوص وجود دارد این است که رباتهای بد از این خواسته سرپیچی کرده و بدون در نظر گرفتن فایل robots.txt و قوانینی که در آن تعریف شده است، هر کجای وبسایت را بخواهند سرک کشیده و بازدید میکنند. لذا بهترین کار جهت مسدود سازی آنها، انجام این کار با قرار دادن کدهایی در فایل .htaccess است.
در زیر کدی که لازم است برای بلاک کردن روباتهای بد در فایل .htaccess بگذارید، قرار دادهایم. با اعمال این کدها بسیاری از روباتهایی که به عنوان روباتهای بد شناخته شدهاند، دیگر قادر به دسترسی به وبسایت شما نخواهند بود:
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR] RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR] RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR] RewriteCond %{HTTP_USER_AGENT} ^Custo [OR] RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR] RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR] RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR] RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR] RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR] RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR] RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR] RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR] RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR] RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR] RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR] RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR] RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR] RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR] RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR] RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR] RewriteCond %{HTTP_USER_AGENT} ^HMView [OR] RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR] RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR] RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR] RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR] RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR] RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR] RewriteCond %{HTTP_USER_AGENT} ^larbin [OR] RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR] RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR] RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR] RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR] RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR] RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR] RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR] RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR] RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR] RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR] RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR] RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR] RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR] RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR] RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR] RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR] RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR] RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR] RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR] RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR] RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR] RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR] RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR] RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR] RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR] RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR] RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR] RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR] RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR] RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR] RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR] RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR] RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR] RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR] RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR] RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR] RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR] RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR] RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR] RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR] RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR] RewriteCond %{HTTP_USER_AGENT} ^Wget [OR] RewriteCond %{HTTP_USER_AGENT} ^Widow [OR] RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR] RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR] RewriteCond %{HTTP_USER_AGENT} ^Zeus RewriteRule ^.* - [F,L]
با قرار دادن کدهای فوق در فایل .htaccess، تمامی رباتهایی که در بالا ذکر شدهاند، در صورت مراجعه به وبسایت با خطای ۴۰۳ Forbidden مواجه خواهند شد. علاوه بر کدهای فوق میتوانید از کدهای زیر نیز در ادامهی موارد بالا استفاده کنید تا رباتهای بد بیشتری مسدود شوند و خیالتان بیش از پیش از این بابت راحت باشد اما قبل از آن لازم است مطمئن شوید که ماژول «SetEnvIf» در سرور فعال شده است. در غیر این صورت در وبسایت با خطا مواجه شده و یا کدهای زیر به درستی عمل نمیکنند.
# Bad bot SetEnvIfNoCase User-Agent "^abot" bad_bot SetEnvIfNoCase User-Agent "^aipbot" bad_bot SetEnvIfNoCase User-Agent "^asterias" bad_bot SetEnvIfNoCase User-Agent "^EI" bad_bot SetEnvIfNoCase User-Agent "^libwww-perl" bad_bot SetEnvIfNoCase User-Agent "^LWP" bad_bot SetEnvIfNoCase User-Agent "^lwp" bad_bot SetEnvIfNoCase User-Agent "^MSIECrawler" bad_bot SetEnvIfNoCase User-Agent "^nameprotect" bad_bot SetEnvIfNoCase User-Agent "^PlantyNet_WebRobot" bad_bot SetEnvIfNoCase User-Agent "^UCmore" bad_bot SetEnvIfNoCase User-Agent "Alligator" bad_bot SetEnvIfNoCase User-Agent "AllSubmitter" bad_bot SetEnvIfNoCase User-Agent "Anonymous" bad_bot SetEnvIfNoCase User-Agent "Asterias" bad_bot SetEnvIfNoCase User-Agent "autoemailspider" bad_bot SetEnvIfNoCase User-Agent "Badass" bad_bot SetEnvIfNoCase User-Agent "Baiduspider" bad_bot SetEnvIfNoCase User-Agent "BecomeBot" bad_bot SetEnvIfNoCase User-Agent "Bitacle" bad_bot SetEnvIfNoCase User-Agent "bladder\ fusion" bad_bot SetEnvIfNoCase User-Agent "Blogshares\ Spiders" bad_bot SetEnvIfNoCase User-Agent "Board\ Bot" bad_bot SetEnvIfNoCase User-Agent "Board\ Bot" bad_bot SetEnvIfNoCase User-Agent "Convera" bad_bot SetEnvIfNoCase User-Agent "ConveraMultiMediaCrawler" bad_bot SetEnvIfNoCase User-Agent "c-spider" bad_bot SetEnvIfNoCase User-Agent "DA" bad_bot SetEnvIfNoCase User-Agent "DnloadMage" bad_bot SetEnvIfNoCase User-Agent "Download\ Express" bad_bot SetEnvIfNoCase User-Agent "Download\ Wonder" bad_bot SetEnvIfNoCase User-Agent "dragonfly" bad_bot SetEnvIfNoCase User-Agent "DreamPassport" bad_bot SetEnvIfNoCase User-Agent "DSurf" bad_bot SetEnvIfNoCase User-Agent "DTS Agent" bad_bot SetEnvIfNoCase User-Agent "EBrowse" bad_bot SetEnvIfNoCase User-Agent "edgeio" bad_bot SetEnvIfNoCase User-Agent "Email\ Extractor" bad_bot SetEnvIfNoCase User-Agent "EmailSiphon" bad_bot SetEnvIfNoCase User-Agent "EmeraldShield" bad_bot SetEnvIfNoCase User-Agent "ESurf" bad_bot SetEnvIfNoCase User-Agent "Exabot" bad_bot SetEnvIfNoCase User-Agent "FileHeap!\ file downloader" bad_bot SetEnvIfNoCase User-Agent "FileHound" bad_bot SetEnvIfNoCase User-Agent "Forex" bad_bot SetEnvIfNoCase User-Agent "Franklin\ Locator" bad_bot SetEnvIfNoCase User-Agent "FreshDownload" bad_bot SetEnvIfNoCase User-Agent "FrontPage" bad_bot SetEnvIfNoCase User-Agent "FSurf" bad_bot SetEnvIfNoCase User-Agent "Gaisbot" bad_bot SetEnvIfNoCase User-Agent "Gamespy_Arcade" bad_bot SetEnvIfNoCase User-Agent "genieBot" bad_bot SetEnvIfNoCase User-Agent "GetBot" bad_bot SetEnvIfNoCase User-Agent "Gigabot" bad_bot SetEnvIfNoCase User-Agent "GOFORITBOT" bad_bot SetEnvIfNoCase User-Agent "heritrix" bad_bot SetEnvIfNoCase User-Agent "HLoader" bad_bot SetEnvIfNoCase User-Agent "HooWWWer" bad_bot SetEnvIfNoCase User-Agent "iCCrawler" bad_bot SetEnvIfNoCase User-Agent "ichiro" bad_bot SetEnvIfNoCase User-Agent "iGetter" bad_bot SetEnvIfNoCase User-Agent "imds_monitor" bad_bot SetEnvIfNoCase User-Agent "Industry\ Program" bad_bot SetEnvIfNoCase User-Agent "InetURL" bad_bot SetEnvIfNoCase User-Agent "InstallShield\ DigitalWizard" bad_bot SetEnvIfNoCase User-Agent "IRLbot" bad_bot SetEnvIfNoCase User-Agent "IUPUI\ Research\ Bot" bad_bot SetEnvIfNoCase User-Agent "Java" bad_bot SetEnvIfNoCase User-Agent "jeteye" bad_bot SetEnvIfNoCase User-Agent "jeteyebot" bad_bot SetEnvIfNoCase User-Agent "JoBo" bad_bot SetEnvIfNoCase User-Agent "Kapere" bad_bot SetEnvIfNoCase User-Agent "LeechGet" bad_bot SetEnvIfNoCase User-Agent "LightningDownload" bad_bot SetEnvIfNoCase User-Agent "Linkie" bad_bot SetEnvIfNoCase User-Agent "Mac\ Finder" bad_bot SetEnvIfNoCase User-Agent "Mail\ Sweeper" bad_bot SetEnvIfNoCase User-Agent "MetaProducts\ Download\ Express" bad_bot SetEnvIfNoCase User-Agent "Microsoft\ Data\ Access" bad_bot SetEnvIfNoCase User-Agent "Microsoft\ URL\ Control" bad_bot SetEnvIfNoCase User-Agent "Missauga\ Locate" bad_bot SetEnvIfNoCase User-Agent "Missauga\ Locator" bad_bot SetEnvIfNoCase User-Agent "Missigua Locator" bad_bot SetEnvIfNoCase User-Agent "Missouri\ College\ Browse" bad_bot SetEnvIfNoCase User-Agent "MovableType" bad_bot SetEnvIfNoCase User-Agent "Mozi!" bad_bot SetEnvIfNoCase User-Agent "Mozilla/3.0 (compatible)" bad_bot SetEnvIfNoCase User-Agent "Mozilla/5.0 (compatible; MSIE 5.0)" bad_bot SetEnvIfNoCase User-Agent "MSIE_6.0" bad_bot SetEnvIfNoCase User-Agent "MSIECrawler" badbot SetEnvIfNoCase User-Agent "MVAClient" bad_bot SetEnvIfNoCase User-Agent "MyFamilyBot" bad_bot SetEnvIfNoCase User-Agent "MyGetRight" bad_bot SetEnvIfNoCase User-Agent "NASA\ Search" bad_bot SetEnvIfNoCase User-Agent "Naver" bad_bot SetEnvIfNoCase User-Agent "NaverBot" bad_bot SetEnvIfNoCase User-Agent "NetResearchServer" bad_bot SetEnvIfNoCase User-Agent "NEWT\ ActiveX" bad_bot SetEnvIfNoCase User-Agent "Nextopia" bad_bot SetEnvIfNoCase User-Agent "NICErsPRO" bad_bot SetEnvIfNoCase User-Agent "NimbleCrawler" bad_bot SetEnvIfNoCase User-Agent "Nitro\ Downloader" bad_bot SetEnvIfNoCase User-Agent "Nutch" bad_bot SetEnvIfNoCase User-Agent "OmniExplorer" bad_bot SetEnvIfNoCase User-Agent "OutfoxBot" bad_bot SetEnvIfNoCase User-Agent "P3P" bad_bot SetEnvIfNoCase User-Agent "PagmIEDownload" bad_bot SetEnvIfNoCase User-Agent "pavuk" bad_bot SetEnvIfNoCase User-Agent "PHP\ version" bad_bot SetEnvIfNoCase User-Agent "playstarmusic" bad_bot SetEnvIfNoCase User-Agent "Program\ Shareware" bad_bot SetEnvIfNoCase User-Agent "Progressive Download" bad_bot SetEnvIfNoCase User-Agent "psycheclone" bad_bot SetEnvIfNoCase User-Agent "puf" bad_bot SetEnvIfNoCase User-Agent "PussyCat" bad_bot SetEnvIfNoCase User-Agent "PuxaRapido" bad_bot SetEnvIfNoCase User-Agent "Python-urllib" bad_bot SetEnvIfNoCase User-Agent "RedKernel" bad_bot SetEnvIfNoCase User-Agent "relevantnoise" bad_bot SetEnvIfNoCase User-Agent "RepoMonkey\ Bait\ &\ Tackle" bad_bot SetEnvIfNoCase User-Agent "RTG30" bad_bot SetEnvIfNoCase User-Agent "SBIder" bad_bot SetEnvIfNoCase User-Agent "script" bad_bot SetEnvIfNoCase User-Agent "Seekbot" bad_bot SetEnvIfNoCase User-Agent "sna-" bad_bot SetEnvIfNoCase User-Agent "Snap\ bot" bad_bot SetEnvIfNoCase User-Agent "SpeedDownload" bad_bot SetEnvIfNoCase User-Agent "Sphere" bad_bot SetEnvIfNoCase User-Agent "sproose" bad_bot SetEnvIfNoCase User-Agent "SQ\ Webscanner" bad_bot SetEnvIfNoCase User-Agent "Stamina" bad_bot SetEnvIfNoCase User-Agent "Star\ Downloader" bad_bot SetEnvIfNoCase User-Agent "Teleport" bad_bot SetEnvIfNoCase User-Agent "TurnitinBot" bad_bot SetEnvIfNoCase User-Agent "UdmSearch" bad_bot SetEnvIfNoCase User-Agent "URLGetFile" bad_bot SetEnvIfNoCase User-Agent "User-Agent" bad_bot SetEnvIfNoCase User-Agent "UtilMind\ HTTPGet" bad_bot SetEnvIfNoCase User-Agent "WebCapture" bad_bot SetEnvIfNoCase User-Agent "webcollage" bad_bot SetEnvIfNoCase User-Agent "WebCopier" bad_bot SetEnvIfNoCase User-Agent "WebFilter" bad_bot SetEnvIfNoCase User-Agent "Wells\ Search" bad_bot SetEnvIfNoCase User-Agent "WEP\ Search\ 00" bad_bot SetEnvIfNoCase User-Agent "Wildsoft\ Surfer" bad_bot SetEnvIfNoCase User-Agent "WinHttpRequest" bad_bot SetEnvIfNoCase User-Agent "Y!TunnelPro" bad_bot SetEnvIfNoCase User-Agent "YahooYSMcm" bad_bot SetEnvIfNoCase User-Agent "Zade" bad_bot SetEnvIfNoCase User-Agent "ZBot" bad_bot SetEnvIfNoCase User-Agent "zerxbot" bad_bot # Apache < 2.4 <IfModule !mod_authz_core.c> <Limit GET POST> Order allow,deny Allow from all Deny from env=bad_bot </Limit> </IfModule> # Apache >= 2.4 <IfModule mod_authz_core.c> <Limit GET POST> <RequireAll> Require all granted Require not env bad_bot </RequireAll> </Limit> </IfModule>
موفق باشید
نوشته مسدود کردن رباتهای مخرب از طریق htaccess اولین بار در بیست اسکریپت. پدیدار شد.