مسدود کردن ربات‌های مخرب از طریق htaccess

آموزشی دیگر از سایت ببینم تقدیم شما : ربات ها در وب بسیار رایج هستند. در واقع، از سال 2012، ترافیک ربات ها از ترافیک انسانی در وب بیشتر بود. درست است؛ بیش از 50 درصد از بازدیدهای وب سایت شما به طور متوسط از ربات ها به جای انسان ها است. ربات ها اهداف […]

آموزشی دیگر از سایت ببینم تقدیم شما : ربات ها در وب بسیار رایج هستند. در واقع، از سال 2012، ترافیک ربات ها از ترافیک انسانی در وب بیشتر بود. درست است؛ بیش از 50 درصد از بازدیدهای وب سایت شما به طور متوسط از ربات ها به جای انسان ها است.

ربات ها اهداف گسترده ای دارند و همه آنها بد نیستند. برخی از ربات‌ها، مانند ربات‌های Google و Bing، صفحات شما را می‌خزند و ایندکس می‌کنند. اگر بخواهید Googlebot را مسدود کنید، سایت شما در نهایت از فهرست آنها حذف خواهد شد. آنها دیگر نمی توانند به آن دسترسی داشته باشند، بنابراین محتوای شما نمایش داده نمی شود.

سایر ربات ها کاربردهای ویژه بیشتری دارند. ربات‌هایی وجود دارند که صرفاً برای خزیدن در وب‌سایت‌های تجارت الکترونیک، به دنبال معاملات هستند. آنها هر فروشگاه الکترونیکی را که می توانند با یک محصول خاص پیدا کنند، ارجاع متقابل می کنند، بنابراین سایت خانه می تواند قیمت محصول را در طیف گسترده ای از مغازه ها نشان دهد. برخی از سایت‌ها از این موارد استفاده می‌کنند تا مطمئن شوند که در بالای لیست قرار دارند، به همین دلیل است که بسیاری از فهرست‌های آمازون به تدریج هر روز چند سنت کاهش می‌یابند. فروشندگان رقیب با کاهش قیمت ها در هر بار یک یا دو پنی، یکدیگر را از فهرست خارج می کنند.

سایر ربات ها کمتر خوش خیم هستند. ربات‌های هرزنامه وبلاگ‌هایی را جستجو می‌کنند که به دنبال سیستم‌های نظرات مختلفی هستند که می‌دانند چگونه از آنها سوء استفاده کنند. نظرات بدون احراز هویت یا کپچا را می‌توان توسط ربات‌ها پر کرد، و نظرات هرزنامه را می‌توان برای ایجاد پیوند به سایت‌های هرزنامه، جذب کلیک‌های کاربران وب نادان، یا حتی بمباران یک سایت بدخیم با سئوی منفی رها کرد.

ربات های هکر برای خزیدن در وب با نگاه کردن به زیرساخت های سایت وجود دارند. آنها دامنه ها را برای URL های معمولی /admin.htm آزمایش می کنند و به دنبال وب سایت هایی می گردند که از CMS پیش فرض استفاده می کنند و چیزهایی مانند نام کاربری یا رمز عبور را تغییر نداده اند. آنها به دنبال سایت‌های آسیب‌پذیر، میوه‌های آویزان کم، می‌گردند که می‌توانند به آن‌ها دسترسی داشته باشند و از آنها بهره‌برداری کنند. آنها ممکن است اطلاعات مدیر یا کاربر را جمع آوری کنند یا فقط URL ها را به صاحب ربات هکر گزارش دهند. آنها ممکن است طوری برنامه ریزی شوند که به سادگی یک سایت را حذف کنند و آن را با محتوای خود جایگزین کنند.

ربات های مخرب از ویروس های کامپیوتری سرچشمه می گیرند. آنها رایانه کاربر را در اختیار می گیرند و آشکارا یا در پس زمینه از قابلیت دسترسی به اینترنت آن رایانه برای انجام هر کاری که صاحب ویروس می خواهد انجام دهند استفاده می کنند. اغلب این به سادگی برای چکش کردن یک URL داده شده در یک حمله DDoS، با هدف از بین بردن سایت، یا فشار دادن به سرور به اندازه کافی برای ورود یک هکر از طریق یک اشکال در کد استفاده می شود. درباره بهترین آنتی ویروس بین AVG و Avast بیشتر بدانید.

ربات های Scraper نیز مخرب هستند. آنها مانند ربات های موتور جستجو عمل می کنند و محتوا را می خراشند. با این حال، به جای اضافه کردن آن به فهرست جستجو، آنها به سادگی محتوا را به صورت عمده کپی می کنند. محتوا، اسکریپت ها، رسانه ها؛ همه آن‌ها دانلود شده و روی سرور هرزنامه‌نویس قرار می‌گیرند، بنابراین آنها می‌توانند از آن برای چرخش در محتوای سایت‌های هرزنامه‌شان – یا فقط جای‌گذاری عمده- استفاده کنند. همه اینها برای آنها یکبار مصرف است، فقط منبعی است که آنها برداشت می کنند و زمانی که دیگر مفید نیست، رها می کنند.

بدیهی است که این ربات ها اشکالات زیادی دارند. با این حال، علاوه بر اهداف آنها، آنها یک اثر جانبی دیگر نیز دارند. فشار سرور ربات ها ممکن است بتوانند به صورت ساده و سبک به سایت شما دسترسی داشته باشند – ربات های موتور جستجو اغلب این کار را می کنند – اما حتی اگر این کار را انجام دهند، همچنان به سایت شما دسترسی دارند. آنها همچنان محتوا را دانلود می کنند، از سرور شما درخواست می کنند و به طور کلی از منابع استفاده می کنند.

در بسیاری از موارد، این حتی می تواند یک سایت را از بین ببرد. من گزارش‌هایی از سایت‌هایی دیده‌ام که فقط توسط گوگل چکش کرده و از بین رفته‌اند، اگرچه گوگل اغلب آنقدر هوشمند است که از انجام این کار اجتناب کند. با این حال، با فشار شدید ترافیک ربات در وب، چیزهای زیادی برای مبارزه وجود دارد.

همه اینها بدون اشاره به مسائل مربوط به تجزیه و تحلیل داده ها است که بعداً مطرح می شود. حذف ترافیک ربات از Google Analytics یک مشکل بزرگ است، بنابراین اطلاعاتی که می توانید تجزیه و تحلیل کنید در واقع منعکس کننده استفاده انسان است، نه استفاده از نرم افزار.
مسدود کردن ربات ها

دو راه برای مسدود کردن ربات هایی که سعی در دسترسی به سایت شما دارند وجود دارد. یکی از طریق فایل robots.txt و دیگری از طریق فایل htaccess.

همانطور که ممکن است از عنوان این پست حدس بزنید، من بر روی مورد دوم تمرکز خواهم کرد. اما ابتدا اجازه دهید در مورد robots.txt صحبت کنیم.

فایل robots.txt چیست؟

فایل robots.txt یک فایل متنی است که شما در root Director سرور خود قرار می دهید. هدف آن ارائه دستورالعمل هایی به ربات هایی است که می خواهند به سایت شما دسترسی پیدا کنند. می‌توانید از آن برای مسدود کردن دسترسی ربات‌ها، چه به ربات‌های خاص یا به همه ربات‌ها، استفاده کنید.

 

فایل robots.txt چیست؟

 

مشکل robots.txt این است که به ربات ها راهنمایی می کند. اگر ربات‌ها تصمیم بگیرند که به آن احترام نگذارند – منظور من، اگر سازنده ربات آن را طوری برنامه‌ریزی کند که robots.txt را نادیده بگیرد – نمی‌توانید کاری انجام دهید. مانند این است که درب ورودی خود را باز کنید، اما با تابلویی که روی آن نوشته شده است «دزدها دوری کنید». اگر سارق تصمیم بگیرد که تابلو را نادیده بگیرد، هیچ چیز مانع از عبور آنها از دروازه نمی شود.

فایل .htaccess یک فایل پیکربندی است که توسط نرم افزار وب سرور آپاچی استفاده می شود. این بسیار بیشتر شبیه یک نگهبان امنیتی در جلوی دروازه است که فعالانه دزدان احتمالی را متوقف می کند. به جز در این مورد، نگهبان این توانایی را دارد که ببیند آیا فردی که قصد ورود به داخل را دارد از RobberHome آمده است یا نه، پیراهنی به تن دارد که روی آن نوشته شده است “من یک دزد هستم” یا در غیر این صورت خود را معرفی می کند.

این بدان معناست که فایل htaccess می تواند به طور فعال اکثر ربات ها را مسدود کند، اما نه همه ربات ها. به طور خاص، ربات‌های بات‌نت – رایانه‌های برده شده از کاربران عادی – معمولاً به طور پیش‌فرض مسدود نمی‌شوند. این به این دلیل است که آن ها کامپیوترهای کاربر معمولی هستند که از نرم افزار کاربر معمولی استفاده می کنند. اگر آنها را مسدود کنید، انسان ها را مسدود می کنید. با این حال، برای اکثر ربات های دیگر، فایل htaccess. ایده آل است.

 

htaccess

 

توجه داشته باشید که استفاده از فایل htaccess تنها در صورتی امکان پذیر است که وب سرور شما دارای آپاچی باشد. اگر از Nginx، Lighttpd یا یکی از معماری های سرور طاقچه دیگر استفاده می کنید، باید راه آن نرم افزار را برای مسدود کردن ربات ها پیدا کنید.

شناسایی ربات ها برای مسدود کردن

اول از همه یک هشدار. هنگامی که ربات ها را از طریق فایل htaccess مسدود می کنید بسیار مراقب باشید. یک اشتباه تایپی و می توانید کل اینترنت را مسدود کنید. واضح است که شما آن را نمی خواهید.

اولین کاری که می خواهید انجام دهید این است که از فایل htaccess فعلی خود نسخه پشتیبان تهیه کنید. در صورت بروز خطایی که ترافیکی را که نمی‌خواهید مسدود شود مسدود می‌کند، می‌توانید فایل قدیمی را برای بازگرداندن تغییرات بازیابی کنید تا زمانی که متوجه شوید چه مشکلی رخ داده است.

 

 شناسایی ربات ها برای مسدود کردن

 

دومین کاری که می خواهید انجام دهید این است که بفهمید چگونه گزارش های دسترسی خود را پیدا کنید. با آپاچی، برای دسترسی به فایل لاگ باید از دستور لینوکس/یونیکس استفاده کنید.

با استفاده از آن راهنما، یک فایل گزارش ایجاد می کنید که دسترسی به سرور را با جزئیات بسیار کمی نشان می دهد. آدرس IP مورد استفاده برای دسترسی به سرور، هویت دستگاه مشتری در صورت موجود بودن، شناسه کاربری دستگاه در صورت استفاده از احراز هویت، زمان درخواست، دسترسی به آن توسط HTTP، کد وضعیت سرور برگردانده شد و اندازه شی درخواست شد. این احتمالاً یک فایل بزرگ خواهد بود.

فایل log داده‌های مربوط به همه کاربران معمولی شما و تمام دسترسی‌های ربات شما را خواهد داشت. برخی از ربات‌ها، مانند ربات‌های Google، خود را از طریق اطلاعات عامل کاربر خود شناسایی می‌کنند. ربات‌های بد گاهی اوقات خود را شناسایی می‌کنند، اما اغلب فقط ویژگی‌های خاصی دارند که آنها را غیرانسانی می‌داند. آنها ممکن است از نسخه قدیمی مرورگری استفاده کنند که معمولاً مورد سوء استفاده قرار می گیرد. آنها ممکن است از آدرس ها یا دامنه های هرزنامه شناخته شده باشند.

این راهنما به شما کمک می‌کند تشخیص دهید کدام ورودی‌های لاگ ربات‌های بد هستند و کدام ربات‌های خوب یا کاربران خوب هستند.

به طور کلی، اگر یک ربات فقط یک بار در ماه به سایت شما دسترسی دارد، لزوماً لازم نیست نگران آن باشید. در صورت تمایل می‌توانید آن را مسدود کنید، اما لزوماً باعث صرفه‌جویی در وقت یا تلاش شما نمی‌شود. هدف اصلی شما باید مسدود کردن ربات هایی باشد که دائماً بازدید می کنند و تأثیر منفی بر عملکرد سرور شما دارند.

هنگام مسدود کردن توسط آدرس IP یا محدوده IP بسیار مراقب باشید. دیدن تعداد زیادی ربات از چیزی شبیه به 168.*.*.*، با اعداد مختلف در ستاره ها آسان است و فکر کنید «من فقط می توانم همه آنها را مسدود کنم! کل محدوده /8 را مسدود کنید! مشکل این است که محدوده 8/ در IPv4 16777216 آدرس IP مختلف است که بسیاری از آنها ممکن است توسط کاربران قانونی استفاده شوند. شما می توانید با یک قانون بیش از حد گسترده، حجم عظیمی از ترافیک قانونی را مسدود کنید.

اکثر ورودی‌های یک فایل htaccess. از طریق آدرس IP مسدود نمی‌شوند، فقط به این دلیل که تغییر آدرس IP از طریق پراکسی‌ها بسیار آسان است. اکثر آنها از نام‌های عامل کاربر، آدرس‌های IP تکرارشونده خاص از ربات‌هایی که اهمیتی برای تغییر ندارند، یا دامنه‌هایی که عموماً برای میزبانی ربات‌های هرزنامه یا ابزارهای هکر استفاده می‌شوند، استفاده می‌کنند.

با استفاده از فایل htaccess

سه راه برای مسدود کردن ربات ها از طریق فایل htaccess وجود دارد. اولین مورد رایج ترین است که از عامل کاربر ربات برای مسدود کردن آن استفاده می کند. این به طور کلی قابل اعتماد است، زیرا کاربران عادی به طور تصادفی یک عامل کاربر ربات ندارند.

در فایل htaccess خود، ابتدا خطی را می خواهید که «RewriteEngine on» را نشان دهد. این خط اطمینان می دهد که هر خط بازنویسی زیر به جای اینکه به عنوان نظر تجزیه شود، کار خواهد کرد.

در مرحله بعد، می‌توانید «RewriteCond %{HTTP_USER_AGENT} \» را به عنوان خط خودش اضافه کنید. این یک شرط بازنویسی را بر اساس user-agent فعال می کند. شما در اینجا دو گزینه دارید؛ می توانید بعد از این یک خط تعداد زیادی عامل کاربری مختلف اضافه کنید، یا می توانید یک عامل کاربر اضافه کنید و سپس خط را دوباره اضافه کنید. مثلا:

 

 

RewriteCond %{HTTP_USER_AGENT} \

12soso|\

192\.comagent|\

1noonbot|\

1on1searchbot|\

3de\_search2|\ [NC,OR]

Or:

RewriteCond %{HTTP_USER_AGENT} ^[Ww]eb[Bb]andit [NC,OR]

RewriteCond %{HTTP_USER_AGENT} ^$ [NC,OR]

RewriteCond %{HTTP_USER_AGENT} ^Acunetix [NC,OR]

RewriteCond %{HTTP_USER_AGENT} ^binlar [NC,OR]

RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [NC,OR]

هر دو خوب کار می کنند با مثال اول، باید یک خط RewriteCond اضافی در هر 500 یا بیشتر ورودی اضافه کنید. این به این دلیل است که هر چه خط با یک فرمان طولانی تر باشد، تجزیه و تحلیل برای آپاچی سخت تر می شود. تقسیم کردن آن به ورودی های فردی باعث می شود که آن را درهم و برهم تر کند اما شاید خواندن آن را آسان تر کند. صرف نظر از این، شما می توانید از هر دو روش استفاده کنید.

بیت های NC و OR در انتها پرچم های بازنویسی هستند. NC به معنای “nocase” است، به این معنی که ورودی به حروف بزرگ و کوچک حساس نیست. این به این معنی است که “12soso” و “12Soso” به همین ترتیب رفتار می شوند. OR به معنای “این یا آن” است، همانطور که در، ربات تا زمانی که با یکی از ورودی های لیست مطابقت داشته باشد، مسدود می شود، در مقابل “AND” که همه آنها هستند.

پس از لیست ربات های خود در اینجا، باید قانون بازنویسی را مشخص کنید. همه اینها فقط قسمت اول یک بند دو قسمتی است: اگر URL با این مطابقت داشته باشد، … قسمت دوم اتفاقی است که می افتد. “RewriteRule .* – [F,L]” را در خط خودش اضافه کنید.

کاری که این کار انجام می دهد این است که هر ترافیک ورودی را از عامل کاربر ربات به یک صفحه مسدود شده هدایت می کند. به طور خاص، کد 403 Forbidden را ارسال می کند. [F] ممنوع است و [L] کدی است که نشان می دهد قانون بازنویسی باید بلافاصله اعمال شود نه پس از تجزیه بقیه فایل htaccess.

دو روش دیگر مسدود کردن بر اساس ارجاع دهنده HTTP و مسدود کردن بر اساس آدرس IP هستند.

برای مسدود کردن توسط ارجاع دهنده HTTP، از “RewriteCond %{HTTP_REFERRER}” به عنوان خط شروع استفاده کنید، از دامنه ارجاع دهنده بهره برداری مانند www1.free-social-buttons\.com استفاده کنید و از بلوک [NC,OR] استفاده کنید. سپس همان خط RewriteRule را اضافه کنید. در نهایت به چیزی شبیه به این خواهید رسید:

 

 

RewriteCond %{HTTP_REFERER} www4.free-social-buttons\.com

RewriteRule ^.* - [F,L]

در نهایت، شما به سادگی می توانید بر اساس آدرس IP مسدود کنید. اگر متوجه شدید که یک آدرس IP خاص به خصوص مضر است، هر ساعت صد بار به سایت شما اسپم می‌کند یا هر چیز دیگری، می‌توانید آن را مسدود کنید. فقط “*.*.*.*” را بنویسید، جایی که ستاره ها آدرس IP هستند. به نظر می رسد ” 173.192.34.95″ است.

 

مسدود سازی ربات های مخرب در وردپرس

کافیست کد زیر را در فایل 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]

6 پاسخ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *