نحوه شناسایی و مسدود کردن اسکراپرهای وب
آیا تا به حال به این فکر کردهاید که چگونه شرکتها تمام دادههایی را که برای تحقیق یا تجزیهو تحلیل خود استفاده میکنند جمعآوری میکنند؟ یا چگونه ابزارهای مقایسه قیمت میتوانند ببینند که هر محصول از هر خرده فروش چقدر هزینه دارد؟ اغلب، این مشاغل از ابزارهایی استفاده میکنند که بهعنوان scrapers وب شناخته میشوند، که رباتهایی هستند که برای استخراج خودکار دادهها از وبسایتها و برنامهها طراحیشدهاند.
این ابزارها اغلب برای اهداف قانونی مانند ابزارهای مقایسه قیمت فوقالذکر استفاده میشوند، اما میتوانند برای فعالیتهای مخرب مانند سرقت محتوا، به خطر انداختن حریم خصوصی کاربر و انجام فعالیتهای کلاهبرداری نیز استفاده شوند. -صرفنظر از قصد- اسکرابرهای وب میتوانند تأثیرات نامطلوبی بر عملکرد سایت داشته باشند.
به همین دلیل است که بسیاری از صاحبان سایت سعی میکنند اسکرابرهای وب را بهطور کامل از صفحات وب خود مسدود کنند. البته، یک ابزار اختصاصی تشخیص و کاهش ربات، میتواند انواع ترافیک مشکوک و مخرب را در زمان واقعی شناسایی و مسدود کند، اما برخی از تکنیکهای دستی برای کسانی که میخواهند بهتنهایی با مسدود کردن رباتهای اسکرابر ساده مقابله کنند، وجود دارد.
وب اسکرابر چیست؟
اسکرابر وب برنامه یا اسکریپت است که برای استخراج دادهها از یک وبسایت بدون هیچگونه قصد ارائه ارزش یا سود به صاحب وبسایت یا کاربران آن طراحیشده است. اسکرابرهای وب اغلب برای اهداف غیراخلاقی مانند سرقت محتوا، کپی کردن توضیحات یا قیمتهای محصول، یا جمعآوری آدرسهای ایمیل برای ارسال هرزنامه استفاده میشوند. آنها همچنین میتوانند برای اهداف قانونی مانند دادهکاوی و تحقیق استفاده شوند ، اما فقط درصورتیکه صاحب وبسایت به اسکرابر اجازه دسترسی و استفاده از دادههای آنها را داده باشد.
اسکرابرهای وب چگونه کار میکنند؟
اسکرابرهای وب با تجزیه کد HTML وبسایت و استخراج دادههای موردنظر در پارامترهای آنها کار میکنند.
پیچیدگی یک اسکرابر به عواملی مانند ساختار وبسایت و نوع دادههایی که باید استخراج شوند بستگی دارد، اما بهطورمعمول، آنها برنامههای نسبتاً سادهای هستند.
برای کاربران غیر فنی، کتابخانههای مختلف scraping وب منبع باز در دسترس است که میتواند روند کار را ساده کند و حتی برنامههای کامل اسکرابر بهعنوان یک سرویس که به کاربران امکان میدهد اسکرابرهای وب ساده را از طریق رابط کاربری گرافیکی بسازند – بدون کد لازم. این ابزارها بهصورت رایگان برای استفاده محدود یا با هزینه کم برای استفاده در مقیاس در دسترس هستند.
موارد استفاده قانونی برای اسکرابرهای وب چیست؟
البته دلیل اینکه ابزارهای خراش دادن بسیار رایج و در دسترس هستند این است که خراش دادن، وقتی به صورت اخلاقی و صحیح انجام شود، کاملاً قانونی است و میلیاردها بار در روز به هزاران دلیل مختلف انجام میشود. تشخیص این اسکرابرها از ترافیک نامعتبر آسان است زیرا آنها خود را در هدر HTTP شناسایی میکنند و دستورالعملهای فایل robot.txt سایت شما را دنبال میکنند، که به ربات میگوید چهکاری میتواند انجام دهد و چهکاری نمیتواند در وبسایت شما انجام دهد. با این حال، اسکرابرهای مخرب معمولاً از یک عامل کاربر HTTP کاذب استفاده میکنند و فایل robot.txt شما را نادیده میگیرند – آنها به دنبال هر چیزی هستند که میتوانند دریافت کنند.
برخی از موارد استفاده قانونی برای scraping وب شامل تحقیقات بازار، تجزیهو تحلیل دادهها، جمعآوری محتوا و تحقیقات سئو است. البته، فقط به این دلیل که یک اسکرابر مخرب نیست، به این معنی نیست که از منابع وبسایت شما استفاده نمیکند و بهطور بالقوه بر عملکرد تأثیر میگذارد. اگر غرق در خراشها هستید و عملکرد آسیب میبیند، بهترین روش این است که بدون توجه به نیات، خراشهای متخلف را مسدود کنید.
موارد استفاده مخرب برای اسکرابرهای وب چیست؟
متأسفانه، اسکرابرهای وب نیز اغلب برای اهداف مخرب، ازجمله سرقت محتوا، خراش دادن قیمت، کلاهبرداری در تبلیغات و حتی حملات پیچیدهتر مانند تصاحب حساب و پر کردن اعتبار استفاده میشوند. این حملات میتواند تأثیر قابل توجهی بر صاحبان و کاربران وبسایت داشته باشد، از افزایش بار سرور، کاهش رتبه سئو و آسیب به شهرت گرفته تا نقض حریم خصوصی، سرقت ادبی و سرقت سایبری.
مسدود کردن اسکرابر وب ساده
همانطور که در بالا ذکر شد، اسکرابرهای وب میتوانند آسیب قابل توجهی به یک وبسایت وارد کنند و صرفنظر از قصد آنها، اغلب مهمان ضعیفی ایجاد میکنند و باعث میشوند بسیاری از صاحبان سایت آنها را بهطور کامل مسدود کنند. برای اسکرابرهای قانونی، اینیک فرآیند ساده است: به سادگی پرونده robot.txt خود را به روز کنید تا به اسکرابرها دستور دهید دادههای شما را تجزیه نکنند. البته، هر اسکرابر صادق نیست و راستش را بخواهید، این رویکرد کار زیادی برای جلوگیری از جریان رباتهای نامشروع انجام نمیدهد. پس بعدش چه؟
یک ابزار شناسایی و کاهش ربات اختصاصی میتواند انواع ترافیک مشکوک و مخرب را در زمان واقعی شناسایی و مسدود کند، اما برای کاربرانی که به دنبال راهحل دستی هستند، تکنیکهای سادهای وجود دارد که رباتهای ساده را مسدود میکند. با این حال، این تکنیکها نیاز به دانش اولیه مدیریت وبسایت و شبکه دارند و مهم است که مطمئن شوید که در هر مرحله از فرآیند از فایلهای مهم نسخه پشتیبان تهیه میکنید تا در صورت اشتباه بهراحتی بتوانید به عقب برگردید.
همچنین توجه به این نکته مهم است که این تکنیکها ممکن است برای رباتهای ساده مؤثر باشند، اما بازیگران بد به خوبی از این رویکردها برای کاهش ربات آگاه هستند و راهحلهایی را ایجاد کردهاند. با این اوصاف، بیایید چند روش ساده برای مسدود کردن رباتها را بررسی کنیم.
توقف وب اسکرپرها با مسدود کردن IP
اولین و رایجترین روش کاهش ربات، مسدود کردن IP ساده است، روشی ساده و مؤثر برای مسدود کردن ترافیک از اسکرابرهای شناختهشده یا مشکوک. راهاندازی مسدود کردن IP نسبتاً ساده است، اما مهم است که در مسدود کردن خودگزینشی باشید تا از مسدود کردن کاربران قانونی جلوگیری کنید.
شناسایی آدرسهای IP مشکوک
برای شروع، باید آدرسهای IP مورداستفاده توسط اسکرابرهای وب را شناسایی کنید. این میتواند یک کار خستهکننده باشد، اما روشها و ابزارهای مختلفی وجود دارد که میتواند کمک کند. در اینجا چند روش برای شناسایی آدرسهای IP مورداستفاده توسط scrapers وب آورده شده است:
گزارشهای سرور خود را بررسی کنید
وب سرورها معمولاً گزارشهای تمام درخواستهای دریافتی، ازجمله آدرس IP درخواستکننده را حفظ میکنند. با تجزیهو تحلیل گزارشهای سرور خود، میتوانید آدرسهای IP را شناسایی کنید که تعداد غیرعادی درخواستها یا درخواستهایی را انجام میدهند که خارج از محدوده معمول برای یک کاربر انسانی هستند. از ابزارهایی مانند AWStats و Webalizer میتوان برای تجزیهو تحلیل گزارشهای سرور و شناسایی آدرسهای IP مرتبط با اسکرابرهای وب استفاده کرد.
انجام تجزیهو تحلیل ترافیک شبکه
ابزارهای تجزیهو تحلیل ترافیک شبکه برای ضبط و تجزیهو تحلیل ترافیک شبکه در زمان واقعی استفاده میشوند و میتوانند برای هشدار برای فعالیتهای مشکوک تنظیم شوند. با نظارت بر ترافیک شبکه و ایجاد یک خط پایه از فعالیتهای معمول در شبکه خود، میتوانید الگوهای رفتاری را که با فعالیت scraping وب سازگار است، مانند درخواستهای متعدد برای یک منبع در مدت زمان کوتاهی، شناسایی کنید.
از سرویس شهرت آدرس IP استفاده کنید
خدمات شهرت آدرس IP مانند Project Honey Pot و IPQS میتوانند بینشی در مورد شهرت آدرسهای IP خاص ارائه دهند. این سرویسها از تکنیکهای مختلفی برای شناسایی آدرسهای IP مرتبط با هرزنامه، بدافزار و سایر فعالیتهای مخرب استفاده میکنند.
پیادهسازی قوانین مسدود کردن IP
هنگامیکه طیف وسیعی از آدرسهای IP وابسته به اسکرابرهای وب را شناسایی کردید، گام بعدی اجرای قوانین مسدود کردن IP برای دورنگه داشتن این آدرسها از وبسایت شما است. این کار را میتوان در تنظیمات سرور یا فایروال شما انجام داد، یا از طریق یک رابط خط فرمان، بهعنوانمثال، در وب سرور nginx یا Apache یا از طریق رابط کاربری گرافیکی در برخی از برنامههای CDN و فایروال.
تست و اصلاح قوانین مسدود کردن IP
پس از اجرای قوانین مسدود کردن IP، باید آنها را آزمایش کنید تا مطمئن شوید که همانطور که در نظر گرفتهشده کار میکنند. ممکن است لازم باشد قوانین را در طول زمان اصلاح کنید زیرا آدرسهای IP جدید مرتبط با اسکرابرها شناسایی میشوند.
یکی از راههای آزمایش قوانین مسدود کردن IP، نظارت بر گزارشهای ترافیک و تجزیهو تحلیل آدرسهای IP مسدود شده است. این را میتوان با بررسی گزارشهای سرور یا استفاده از ابزارهای تحلیلی که تجزیهو تحلیل ترافیک را در زمان واقعی ارائه میدهند، انجام داد. اگر کاربران قانونی مسدود میشوند، ممکن است لازم باشد قوانین مسدود کردن IP را اصلاح کنید تا امکان دسترسی از آن آدرسهای IP را فراهم کنید.
روش دیگر استفاده از ابزارهای تست برای شبیهسازی ترافیک از آدرسهای IP مختلف و آزمایش اثربخشی قوانین مسدود کردن IP است. به عنوان مثال، میتوانید از یک ابزار رایگان به نام Jupyter Notebook (iPython Notebook سابق) برای نوشتن حلقهای استفاده کنید که چندین درخواست HTTP را از آدرسهای IP مختلف به وبسایت شما ارسال میکند -هم مسدود شده و هم بدون انسداد- و پاسخها را تجزیهو تحلیل میکند تا ببینید آیا مسدود کردن شما همانطور که در نظر گرفته شده عمل میکند یا خیر. ابزارهای دیگری مانند cURL و Wget نیز میتوانند به روشی مشابه استفاده شوند.
مسدود کردن Web Scrapers با فیلتر کردن عامل کاربر
یکی دیگر از تکنیکهای رایج که میتواند به صورت ترکیبی (یا مستقل از) مسدود کردن IP مورداستفاده قرار گیرد، فیلترینگ عامل کاربر است که در آن وبسایتها رشتههای عامل کاربر ابزارهای رایج scraping را شناسایی و فیلتر میکنند. این کار را میتوان با استفاده از نرمافزار سمت سرور انجام داد که رشته عامل کاربر را بررسی میکند و ترافیک را از ابزارهای خراش دادن شناخته شده مسدود میکند. بااینحال، اثربخشی این روش محدود به رباتهای ساده است و میتوان آن را توسط اسکرابرهایی که از رشتههای عامل کاربر سفارشی استفاده میکنند دور زد.
چگونه عوامل رایج کاربر اسکرابر را شناسایی کنیم؟
قبل از اجرای فیلترینگ عامل کاربر، باید عوامل کاربر مورد استفاده توسط ابزارها و رباتهای رایج scraping را شناسایی کنید. این فرآیند مشابه فرایندی است که در بالا برای شناسایی آدرسهای IP ذکر شد و میتواند با تجزیهو تحلیل گزارشهای سرور یا استفاده از منابع آنلاین که فهرستی از عوامل کاربر شناخته شده scraping را ارائه میدهد، انجام شود.
چندین منبع آنلاین وجود دارد که فهرستی از عوامل شناخته شده کاربر اسکرابر مانند پایگاه داده String.Com عامل کاربر یا افزونه مرورگر Wappalyzer را ارائه میدهد. از این منابع میتوان به عنوان نقطه شروع برای شناسایی عوامل رایج کاربر اسکرابر استفاده کرد.
همچنین میتوان از ابزارهای تجزیهو تحلیل عامل کاربر برای تجزیهو تحلیل رشتههای عامل کاربر و شناسایی عوامل رایج کاربر اسکرابر استفاده کرد. به عنوان مثال، ابزار User Agent Analyzer از UserAgentString.Com به شما امکان میدهد رشتههای عامل کاربر را تجزیهو تحلیل کنید و نوع دستگاه، سیستمعامل و مرورگر مورد استفاده را شناسایی کنید.
با این حال ، در برخی موارد، ممکن است لازم باشد آزمایش دستی برای شناسایی عوامل رایج کاربر اسکرابر انجام شود. این کار را میتوان با استفاده از ابزارهای scraping یا رباتها برای شبیهسازی ترافیک وبسایت شما و تجزیهو تحلیل رشتههای عامل کاربر در درخواستهای خروجی انجام داد.
پیادهسازی فیلترینگ عامل کاربر
پیادهسازی فیلترینگ عامل کاربر میتواند در لبه شبکه از طریق لود بالانسر، فایروال یا CDN یا در سطح پایینتر در وبسرور انجام شود. بسیاری از CDN یا فایروالها یک رابط کاربری گرافیکی برای فیلتر کردن عامل کاربر ارائه میدهند، اما در یک وبسرور، این فرآیند معمولاً شامل ویرایش فایل پیکربندی وبسرور شما است. روش دقیق بسته به سرویس متفاوت است، بنابراین مهم است که قبل از ادامه، با مستندات وبسرور خاص خود مشورت کنید. مراحل زیر فرآیند راهاندازی فیلتر عامل کاربر در وبسرور آپاچی را مشخص میکند، اما میتوانید دستورالعملهای سرور nginx را در اینجا بیابید.
فیلترینگ عامل کاربر در وب سرور آپاچی
برای شروع، مهم است که از فایل پیکربندی سرور خود نسخه پشتیبان تهیه کنید تا در صورت اشتباه بتوانید به راحتی به عقب برگردید.
هنگامی که از فایل پیکربندی خود نسخه پشتیبان تهیه کردید، میتوانید با ویرایش فایل پیکربندی وبسرور با خطوط زیر شروع کنید تا ترافیک عوامل کاربری خاص را مسدود کنید:
“baduseragent” و “otherbaduseragent” را با عوامل کاربری که میخواهید مسدود کنید جایگزین کنید. پرچم “NC” نشان میدهد که مطابقت باید به حروف کوچک و بزرگ حساس باشد و پرچم “OR” نشان میدهد که اگر هر یک از شرایط درست باشد، مطابقت باید اعمال شود. پرچم “F” در RewriteRule نشان میدهد که درخواست باید ممنوع باشد و پرچم “L” نشان میدهد که قانون باید آخرین موردی باشد که پردازش میشود.
هنگامی که تغییرات خود را انجام دادید، فایل پیکربندی را ذخیره کرده و از آن خارج شوید و سپس با دسترسی به وبسایت خود با استفاده از یک عامل کاربری که با یکی از عوامل کاربر مسدود شده مطابقت دارد، قوانین جدید خود را آزمایش کنید. اگر قوانین کار میکنند، درخواست باید مسدود شود و پاسخ ممنوعه ۴۰۳ را برگرداند.
مسدود کردن رباتهای اسکرپر با چالشهای CAPTCHA
اگر همه چیز شکست بخورد، چالشهای CAPTCHA – آن تستهای آزاردهندهای که از شما میخواهند با شناسایی علائم توقف یا اتوبوسها ثابت کنید که انسان هستید – میتواند برای مسدود کردن رباتهای اسکرابر با الزام کاربران به تکمیل چالشی که حل آن برای رباتها دشوار است، اما حل آن برای انسانها نسبتاً آسان است، استفاده شود.
برای استفاده از چالشهای CAPTCHA برای مسدود کردن رباتهای اسکرابر، میتوانید یک ارائه دهنده CAPTCHA را در فرمهای ورود یا ثبتنام وبسایت خود، فرمهای تماس یا سایر مناطقی که در برابر خراش دادن آسیبپذیر هستند، ادغام کنید. چالش CAPTCHA برای کاربرانی که سعی در دسترسی به این مناطق دارند نمایش داده میشود و قبل از اینکه کاربر بتواند ادامه دهد، چالش باید تکمیل شود. برخی از ارائه دهندگان CAPTCHA همچنین رفتار کاربر را بررسی میکنند و چالشها را برای کاربرانی که مشکوک تشخیص میدهند محدود میکنند.
CAPTCHAها چندین مزیت دارند، ازجمله نگهداری نسبتاً کم و سهولت استفاده، اما همچنین میتوانند بر تجربه کاربر تأثیر منفی بگذارند و نرخ رها شدن صفحه را افزایش دهند، به ویژه زمانی که در صفحات فرود یا ورود به سیستم استفاده میشوند.
رباتهای پیشرفته همچنین میتوانند چالشهای CAPTCHA را با تقلید از رفتار انسان یا با برطرف کردن چالشهای CAPTCHA در مزارع CAPTCHA دور بزنند، جایی که کارگران انسانی برای حل چالشهای CAPTCHA از طرف ربات برای کسری از یک پنی پول دریافت میکنند.
برای جلوگیری از دور زدن رباتها از چالشهای CAPTCHA، مهم است که به طور مرتب ارائهدهنده Captcha خود را بهروز کنید و از تکنیکهای دیگری مانند محدود کردن نرخ و مسدود کردن IP برای تکمیل چالشهای CAPTCHA استفاده کنید.
مطالب برتر
کلاهبردارهای پرتکرار سایبری و راه مقابله با آنها
حملات سمت کلاینت چیست و چگونه از آنها جلوگیری کنیم
چگونه از پاک کردن تاریخچه جستجوی مرورگر خود به طور کامل مطمئن شویم؟