یکی از مشکلاتی که وبسایتها و موتورهای جستجو بارها و بارها با آن مواجه شدهاند، حملات بد افزارها و رباتهاست. اختلال و دردسری که درست میکنند باعث شده تا ایدهی محافظت از وبسایت و نرمافزارها در برابر این رباتها مطرح شود و در نهایت سرویسی به نام reCAPTCHA روی کار بیاید.
reCAPTCHA یک سرویس رایگان Google است که با تشخیص کاربران انسانی از رباتهای خودکار، از وبسایتها در برابر هرزنامه و سوءاستفاده محافظت میکند.
تست تورینگ (Turing test) روشی است برای تعیین اینکه آیا کامپیوترها میتوانند رفتاری شبیه انسان از خود نشان دهند یا خیر. این نوع رفتار توسط reCAPTCHA بررسی میشود و اغلب برای جلوگیری از سوءاستفادهی فرم ثبتنام، فرمهای تماس یا بخشهای نظرات کاربرد دارد.
انواع مختلفی از تستهای reCAPTCHA وجود دارد که دو مورد از محبوبترین آنها شامل استفاده از یک تصویر واقعی یا یک چک باکس ساده است. در این مطلب قرار است دربارهی نحوه عملکرد انواع مختلف تستها و نحوه نصب آنها در وبسایت صحبت کنیم.

چگونه reCAPTCHA کار میکند؟
برای طراحی تستهای reCAPTCHA از هوش مصنوعی (AI) استفاده میشود تا رباتها نتوانند با ورود به وبسایت یا برنامه باعث اختلال در عملکرد آن شوند.
البته که این آزمونها باید توسط هر انسانی بدون در نظر گرفتن سن، جنسیت، تحصیلات یا زبان قابلدرک باشد.
تستهای CAPTCHA همگی خودکار هستند تا برنامه کامپیوتری بتواند بدون دخالت انسان، آزمون را درجهبندی کند. به همین دلیل، با پیشرفتهتر شدن CAPTCHA AI و رباتهای مخرب، تستها نیز به طور مداوم در حال پیشرفت هستند.
فرآیند تأیید CAPTCHA های سنتی به این صورت بود که از کاربران میخواست به یک تست پاسخ دهند تا اجازه داشته باشند از امکانات وبسایت یا برنامهی مورد نظر استفاده کنند. در این تستها از حروف و اعداد تصادفی استفاده میشد و طراحی سؤالها به نحوی بود که ترجمه آن برای رباتها سخت باشد. قبلاً، این یک روش بازدارنده و محافظتی در برابر عوامل آسیب زننده بود، زیرا رباتها در تشخیص این حروف یا اعداد تحریفشده مشکل داشتند.
اما با پیشرفت تکنولوژی و هوش مصنوعی، نیاز بود تا نسخهی جدیدتری از CAPTCHA روی کار بیاید که قدرت محافظتی بیشتری داشته باشد و این گونه بود که reCAPTCHA معرفی شد.
تستهای reCAPTCHA پیشرفتهتر از نسخهی ابتداییاش هستند و مالک وبسایت میتواند بر اساس پاسخی که کاربر به تست میدهد، سه نوع عکسالعمل داشته باشد؛ 1) اعطای دسترسی، 2) مسدود کردن کاربر یا 3) پرسیدن تستهای بیشتر.
دو تست موجود برای این روش عبارتاند از Image reCAPTCHA و checkbox reCAPTCHA که در ادامه هر کدام را معرفی میکنیم.
- Image reCAPTCHA
برای استفاده از reCAPTCHA معمولاً از تست تشخیص تصویر استفاده میشود و عملکرد آن به این صورت است که 9 یا 16 تصویر واقعی با وضوح پایین و به شکل مربع در مقابل کاربر نمایش داده میشود. در بالای این تصاویر، کاربران میتوانند دستورالعمل نحوهی انجام این تست را ببینند. به عنوان مثال، ممکن است این دستورالعمل از کاربران بخواهد که تمام مربعهای دارای گذرگاه یا شیر آتشنشانی را انتخاب کنند.
هنگامی که کاربر مربعها را انتخاب کرد، برنامه کامپیوتری پاسخ را با پاسخهای دیگران مقایسه میکند. اگر پاسخ کاربر با اکثر کاربران دیگر مطابقت داشته باشد، تست با موفقیت به پایان میرسد.
البته دقت کنید که این تست تصاویری را نمایش میدهد که انسانها هر روز میبینند و به راحتی میتوانند تشخیص دهند. درحالیکه حتی رباتهای پیشرفته نیز برای انتخاب اشیاء در میان تصاویر با وضوح پایین مشکل خواهند داشت.
همچنین، این تست به صورت نسخه صوتی نیز طراحی شده است تا برای کاربران کم بینا قابل استفاده باشد. در تست صوتی، حروف و اعداد تصادفی را با استفاده از صدای بههمریخته و تقریباً غیرطبیعی بیان میشود و کاربران باید نتیجهی تست را در جای خالی (text input) پاسخ دهند.

- کادر انتخابی یا Checkbox reCAPTCHA
کاربران برای قبولی در تست reCAPTCHA نیازی به حل یا تشخیص چیزی ندارند. به سادگی یک کادر کنار عبارت “من ربات نیستم” (I’m not a robot) را علامت میزنند.
این تست با دنبال کردن حرکت مکاننما در حین نزدیک شدن به کادر انتخابی (چک باکس)، انسانها را از رباتها متمایز میکند. حتی یک کاربر انسانی با مسلطترین حرکت دست، در حین حرکت مکاننما (اشاره گر موس)، تقریباً در سطح میکروسکوپی هم که شده باشد، مقداری حرکت غیرمستقیم را دارد. اما یک ربات، معمولاً نمیتواند این نوع حرکت را تقلید کند و ترجیح میدهد در یک خط مستقیم حرکت کند.
اگر حرکت مکاننما نشان دهد که کاربر یک انسان است، با کلیک کردن روی کادر، یک علامت سبز رنگ نشان داده میشود.
به غیر از دنبال کردن حرکت مکاننما، این تست کوکیهای HTTP و تاریخچه موجود در مرورگر وب را نیز ارزیابی میکند.

مزایا و معایب استفاده از reCAPTCHA
reCAPTCHA به جلوگیری از ارسال هرزنامه توسط رباتها به صفحات وبسایت کمک میکند. اگر امکان دسترسی به بخشهای ثبتنام و ارسال نظر (comment) در وبسایت شما برای هر کاربری فراهم باشد، نصب این تست برای محافظت از سایت خیلی ضروری است.
با وجود همهی خوبیهایی که برایتان گفتیم، این سیستم دارای معایب خاصی است که در ادامه برخی از مزایا و معایب استفاده از reCAPTCHA در سایت شما را خواهیم گفت.
الف) مزایا
reCAPTCHA مثل یک محافظ است که مأموریت دارد در برابر نفوذ هرزنامه، سوءاستفاده و سرقت اطلاعات به وسیلهی رباتها از وبسایت شما محافظت کند.
در اینجا برخی از مهمترین مزایای استفاده از reCAPTCHA آورده شده است:
- رایگان. همه میتوانند از این سرویس به صورت رایگان استفاده کنند.
- امنیت. این تست از وبسایتها در برابر هرزنامه، کلاهبرداری و سوءاستفاده محافظت میکند. به عبارت دیگر، تست reCAPTCHA یک لایه امنیتی بسیار موثر برای وبسایتهایی است که فرمهای ثبتنام و بخش نظرات دارند.
- گزینههای متنوع. انواع مختلفی از تستها و گزینهها برای کاربرپسند بودن آن وجود دارد.
- تمامیت. برای جلوگیری از حملاتی که ممکن است بد افزارها انجام دهند یا بازدیدکنندگان شما را به سایتهای مخرب هدایت کنند، از یکپارچگی سایت شما محافظت میکند.
- زمان. تنها با ارائه خدمات به کاربران واقعی است که میتوانید در زمان خود صرفهجویی کنید. این تست از پر کردن رباتها در بخش نظرات یا مشغول کردن کسبوکار شما با کاربران جعلی جلوگیری میکند.
- انطباق. همان طور که رباتها پیشرفتهتر میشوند، reCAPTCHA به طور مداوم تستهای خود را با استفاده از یک الگوریتم یادگیری ماشینی تنظیم میکند و ارتقا مییابد. به این ترتیب، تستهای reCAPTCHA میتوانند با آنچه که رباتها قادر به انجام آن هستند، سازگار شوند.
ب) معایب
درحالیکه reCAPTCHA گزینهها و راههای مختلفی را برای محافظت از یک سایت در برابر هرزنامه و سوءاستفاده ارائه میدهد، این تست خالی از اشکال نیست. در اینجا برخی از معایب استفاده از آن بیان شده است:
- تجربهی کاربر. این تست در روند انجام کارهایی که کاربر مشغول آن است، وقفه میاندازد و احتمالاً منجر به تجربه منفی کاربر میشود. حتی ممکن است این تست باعث شود بازدیدکنندگان سایت را به کلی رها کنند.
- میزان تأثیرگذاری. برخی از رباتها میتوانند بعضی از تستهای قدیمی reCAPTCHA را فریب دهند.
نحوه نصب reCAPTCHA در وبسایت
نصب تست reCAPTCHA را میتوان به دو روش کلی انجام داد؛ اولی به صورت دستی و دومی با استفاده از افزونه وردپرس است. قبل از نصب این تست، باید انتخاب کنید که میخواهید نوع و محل تست به چه صورت باشد.
به بیان سادهتر، انواع مختلفی از تستهای reCAPTCHA موجود است و باید انتخاب کنید که کدام نوع برای سایت شما مناسب تر است. ما به شما پیشنهاد میکنیم بازدیدکنندگان خود را در نظر بگیرید و دقت کنید که چه نوع تستی برای تجربه کاربری آنها بهترین است.
سپس به این فکر کنید که میخواهید تست را در کدام قسمت به بازدیدکنندگان خود نمایش دهید. معمولاً تستهای reCAPTCHA در کنار فرمهای آنلاین، مانند صفحات ثبتنام (sign-up) یا تماس (contact pages) قرار میگیرند. پس لازم است که قبل از شروع فرآیند نصب، محل آن را انتخاب کنید.
برای نصب reCAPTCHA، اولین قدم دریافت جفت کلید API از پنل مدیریت reCAPTCHA است.
در پنل مدیریت، فرم را با توجه به نیاز وبسایت خود پر کنید:
- Label میتواند هر اسمی باشد که شما میخواهید و هدف از آن متمایز کردن reCAPTCHA های خود از یکدیگر است.
- نوع reCAPTCHA را که میخواهید در وبسایت خود استفاده کنید انتخاب کنید.
- امکان افزودن بیش از یک وبسایت وجود دارد. این کار را میتوان در بخش Domains انجام داد.
- این تست به عنوان یکی از ابزارهای Google است و ایمیل مالکان وبسایت به طور خودکار برای حساب جیمیل شما انتخاب میشود. در صورت لزوم میتوانید آدرسهای ایمیل بیشتری را تغییر دهید یا اضافه کنید.
پس از پر کردن فرم، روی دکمه Submit کلیک کنید. بعد از آن، گوگل یک کلید سایت و یک کلید مخفی ایجاد میکند. از کلید سایت در کد HTML سایت خود و کلید مخفی برای ارتباط بین سایت خود و reCAPTCHA استفاده کنید.
هنگامی که کلید سایت و کلید مخفی را در اختیار دارید، مرحله بعدی شروع فرآیند نصب است.
نصب reCAPTCHA به صورت دستی
یکی از راههای نصب دستی reCAPTCHA، استفاده از فایل PHP یا HTML است. اولین قدم این است که به root folder وبسایت خود (فولدری است که در آن فایلهای وبسایت را قرار میدهیم) دسترسی پیدا کنید. سپس کد زیر را در هدر فایل PHP یا HTML فرم، ترجیحاً بعد از خط عنوان (title)، اضافه کنید:
<script src=”https://www.google.com/recaptcha/api.js” async defer></script>
در همان فایل، قبل از خط submit، کد زیر را داخل فرم قرار دهید:
<div class=”g-recaptcha” data-sitekey=”your_site_key”></div>
your_site_key را با Site Key از Google تغییر دهید. مطمئن شوید که کلید را در داخل علامت نقلقول تایپ میکنید.
سپس، کلید مخفی (secret key) را به رکوردهای DNS اضافه کنید. وابسته به اینکه از چه هاستی (Host) به عنوان ارائهدهنده میزبانی وب استفاده میکنید، احتمالاً لازم است که به ویرایشگر DNS Zone در hPanel دامنه خود بروید. در قسمت Manage DNS records، عبارت data-sitekey را در قسمت Name و کلید مخفی خود را در قسمت TXT value اضافه کنید و در نهایت روی دکمه Add Record بزنید.
به یاد داشته باشید که اعمال تغییرات ممکن است تا 24 ساعت طول بکشد.
نصب reCAPTCHA با استفاده از یک افزونه در وردپرس
نصب reCAPTCHA با استفاده از یک افزونه، یکی سادهترین راهها برای تشخیص انسان از ربات است. البته به خاطر داشته باشید که این گزینه فقط برای کاربران وردپرس در دسترس است.
برای افزودن تست به وبسایتها و فرمهای خود، ابتدا یک افزونه وردپرس با عنوان reCAPTCHA را به صورت دستی نصب کنید. زمانی که به دنبال افزونههایی با عنوان reCAPTCHA هستید، چندین گزینه در مقابل شما قرار میگیرد (مثل تصویر زیر)، اما هیچ افزونه رسمی برای reCAPTCHA وجود ندارد.
برای جستجوی همه افزونههای reCAPTCHA موجود، ابتدا به قسمت Dashboard -> Plugins -> Add New بروید. در کادر جستجو عبارت reCAPTCHA را تایپ کنید و خواهید دید که بیشتر نتایج جستجو به عنوان افزونههای فرم تماس (contact form) ظاهر میشوند.
قبل از انتخاب افزونه، مطمئن شوید که با نسخه وردپرس شما سازگار است. برای مثال، ما در این مطلب نحوهی نصب افزونه فرم تماس ۷ (Contact Form 7) که لوگوی گربه دارد را استفاده میکنیم.
افزونه فرم تماس 7 (Contact Form 7 plugin) این مزیت را دارد که از reCAPTCHA به صورت یکپارچه در همه فرمها استفاده میکند. برای انجام این کار، پس از نصب و فعالسازی افزونه، به قسمت Dashboard -> Contact -> Integration بروید. در بخش reCAPTCHA، روی دکمه Setup integration کلیک کنید.
در این مرحله، کلید سایت (site key) و کلید مخفی (secret key) قبلی را اضافه و پس از اتمام کار، روی دکمه ذخیره تغییرات (Save Changes) کلیک کنید. تا اینجای کار reCAPTCHA روی سایت شما فعالشده و میتوانید عبارت reCAPTCHA is active on this site را ببینید. اما این پایان کار نیست، بلکه دوباره دکمه Setup Integration را باید بزنید.
پس از تکمیل فرآیند یکپارچهسازی، وردپرس دو کلید را به شما نشان میدهد.
سپس به Dashboard -> Contact -> Add New بروید تا اطلاعات لازم برای فرم را اضافه کنید. یکی از این اطلاعات، نوبت اضافه کردن عنوان در قسمت Enter title here است که باعث ایجاد تفاوت بین فرمها میشود.
هنگامی که محتوای بخش فرم (form) را ویرایش کردید، “[recaptcha]” را قبل از خط “[submit “Submit”]” اضافه و بعد روی دکمه Save کلیک کنید. در ادامه یک کد کوتاه تولیدشده در زیر عنوان را خواهد دید.
کد کوتاه را کپی کنید و به ویرایشگر وردپرس بروید تا در قسمت خالی فرمی که ایجاد کردهاید، اضافه کنید. در ویرایشگر گوتنبرگ، به سادگی کد کوتاه را جایگذاری کنید و فرم به طور خودکار اضافه میشود و در نتیجه تست reCAPTCHA شما یکپارچه است.
جمعبندی
reCAPTCHA که به عنوان تست تورینگ (Turing test) شناخته میشود، یک آزمایش خودکار و به صورت رایگان است تا تشخیص دهد کاربری که وارد برنامه شده انسان است یا ربات (bots). انواع مختلفی از reCAPTCHA وجود دارند که شما میتوانید آنها را بر اساس روشهایی که برای انجام این تست به کار میگیرند، انتخاب کنید.
تست reCAPTCHA به این صورت است که کاربران مجبور هستند یک شی خاص را که در تصاویر واقعی وجود دارد شناسایی کنند یا کادری را که میگوید “من یک ربات نیستم” را علامت بزنند. با این حال، به خاطر داشته باشید که استفاده از reCAPTCHA در سایت شما دارای مزایا و معایبی است. این تست به شناسایی رباتها کمک میکند، اما همچنین میتواند باعث مزاحمت و حواسپرتی بازدیدکنندهی شما شود.
در این مقاله راههای مختلفی را برای نصب reCAPTCHA در وبسایت شما معرفی کردیم که در کل به این صورت بود:
- ابتدا باید یک سایت و کلیدهای مخفی برای وبسایت خود تهیه کنید.
- پس از آن، نوبت به انتخاب بین نصب reCAPTCHA به صورت دستی یا استفاده از افزونه وردپرس میرسد.
برای اینکه بیشتر صحبت کنیم، در بخش نظرات به ما اطلاع دهید که آیا reCAPTCHA به محافظت از وبسایت شما کمک کرده است یا خیر.