کپچا چیست؟
فهرست مطالب
حتی اگر ندانید کپچا دقیقا چیست حتماً ترکیب حروف و اعداد کج و ناواضح را دیدهاید که مثلاً به هنگام پرداخت آنلاین، در صفحه ظاهر میشود و از شما خواسته میشود تا آن حروف و اعداد را در کادر مربوطه، به درستی تایپ کنید تا بتوانید به ادامه کار خود بپردازید و پرداخت خود را انجام دهید. اما کپچا دقیقاً چیست؟
کپچا (CAPTCHA) که برای اولین بار در سال 2003 توسط محققان دانشگاه پیتزبورگ معرفی شد مخفف عبارت Completely Automated Turing-test-to-tell Computers and Humans Apart است؛ یعنی «تست کاملاً خودکار تورینگ برای تشخیص کامپیوتر از انسان» که در این عبارت، تورینگ نام شخص ابداعکننده این مدل تست است.
در واقع کپچا تستی است که انتظار میرود تنها انسان (و نه هیچ ماشین یا رباتی) بتواند پاسخ درست را به آن بدهد. همان طور که از نام کامل CAPTCHA پیداست هدف از به کارگیری کپچا در وبسایتها، تشخیص کاربر انسانی از ربات و ممانعت از کار رباتها است.
تورینگ دانشمندی برجسته در زمینه رمزنگاری بود و تست تورینگ عبارت بود از آزمونی برای تشخیص ماشین از انسان. از آنجا که کپچا برای شناسایی کاربر انسانی از ماشین به کار میرود به تست تورینگ معکوس نیز معروف است.
در این مقاله قصد داریم تا انواع کپچا را به شما معرفی کنیم، بررسی کنیم که چرا استفاده از کپچا برای بسیاری از وبسایتها ضروری است و در ادامه شما را با روشهایی برای حل خودکار کپچا آشنا سازیم. از شما دعوت میکنیم تا در ادامه این مطلب با ما همراه باشید.
انواع کپچاهای مورد استفاده در وبسایتها
آنچه در مقدمه به عنوان مثالی متداول از کپچا ذکر کردیم تنها یک نوع از کپچا است اما کپچا، انواع مختلفی دارد که در ادامه مهمترین آنها را برمیشمریم.
این نوع کپچا ترکیبی تصادفی، ناواضح و درهم از حروف و ارقام در پسزمینهای است که خوانایی و تشخیص متن را برای ماشین یا ربات دشوارتر سازد. اگر کاربر، حروف و ارقام را به درستی در فیلد مربوطه وارد کند، اجازه پیدا میکند به کارش ادامه دهد.
این نوع کپچا شامل یک سوال متنی آسان به زبان انگلیسی (یا به زبانی دیگر) است. برای رد کردن این نوع کپچا کافیست جواب درست را در کادر مربوطه وارد کنید.
این نوع کپچا اغلب شامل دو کلمه است که کمی کج و معوج نوشته شدهاند. البته در این نوع از کپچا، برای افراد نابینا یا کمبینا تمهیداتی اندیشیده شده است و با فشردن آیکون بلندگوی داخل باکس کپچا، آن دو کلمه برای کاربر خوانده میشود تا از طریق شنیدن متوجه کپچا شود و آن را وارد کند.
سال 2014 بود که گوگل نشان داد هوش مصنوعی میتواند با دقت 99.8% کپچاهای نرمال را به درستی تشخیص دهد. به همین دلیل گوگل به جای استفاده از کپچای نرمال به نوع دیگری از کپچا رو آورد: عبارت «من ربات نیستم» یا I'm not a robot که کاربر باید تیکش را بزند!
شاید با خود بگویید تیک زدن این عبارت، برای یک ربات کار بسیار سادهای است اما برای تشخیص انسان از ربات در این تست، این تیک به تنهایی مهم نیست بلکه برای تفکیک کاربر انسانی از ربات، لرزش دست کاربر به هنگام حرکت ماوس مورد ارزیابی قرار میگیرد. حرکت دست انسان، قبل و بعد از فشردن دکمه تیک، نامنظم و تصادفی است در حالی که ربات، ماوس را به صورت منظم و خطی تکان میدهد.
در بسیاری از مواقع، زدن تیک من ربات نیستم پایان راه عبور از کپچا نیست و گاه بعد از آن یک یا چند تصویر با تکههای مربعی در کنار هم ظاهر میشوند و از شما خواسته میشود تا یک شیء خاصی (نظیر خودرو، اتوبوس، خط عابر پیاده و ...) را با فشردن تکههای مربعی مربوطه، انتخاب نمایید (البته گاهی نیز اگر هیچ تکهای از آن شیء در تصویر دیده نمیشود که در آن صورت باید دکمه SKIP را بزنید).
نوع دیگری از کپچا نیز هست که در آن از کاربر خواسته میشود یک معما یا یک معادله ساده ریاضی را حل کند. بدیهی است که ربات توانایی خواندن، درک و حل این مسئله را ندارد و در نتیجه نمیتواند از این کپچا گذر کند.
در این نوع کپچا شما تصویری از چیزی (مثلاً یک حیوان) میبینید که در موقعیت درستی قرار نگرفته است و برای حل آن باید به عنوان یک کاربر انسانی با کمک فلشهایی که در اطراف تصویر قرار دارد این تصویر را بچرخانید تا در موقعیت درست خودش قرار بگیرد.
همان طور که از نام این نوع کپچا برمیآید برای گذر از آن، قطعهای جا افتاده از یک تصویر را همانند یک پازل در جای درستش قرار دهید.
جدیدترین و پیشرفتهترین نوع کپچا، کاربر را برای حل کپچا متوقف نمیکند بلکه پس از ورود کاربر به وبسایت، رفتار کاربر را بررسی میکند و به رفتار انسانگونه کاربر امتیاز میدهد و بر اساس این امتیاز تشخیص میدهد که کاربر انسان است یا ربات.
در ری کپچا نسخه 3، از لحظه ورود کاربر به سایت، به نحوه حرکت دادن ماوس، اسکرول کردن، سرعت کلیک و شیوه پر کردن فیلدها (با تایپ کردن یا کپی پیست کردن با Ctrl+V) امتیازی به رفتار انسانی او تعلق میگیرد. اگر این امتیاز از حدی کمتر باشد، تشخیص داده میشود که کاربر، ربات است.
چرا وبسایتها از کپچا استفاده میکنند؟
وجود کپچا در وبسایتها در اغلب مواقع منجر به آزار کاربر شده و سبب میگردد او نتواند به راحتی و به سرعت به انجام کارهایش بپردازد. پس چرا با وجود اینکه کپچا احتمالا تجربه کاربری بدی را برای افراد رقم میزند، باز هم وبسایتها بر استفاده از آن اصرار دارند؟
در ادامه به مهمترین دلایل استفاده از کپچا در وبسایتها میپردازیم:
- اعمال محدودیت برای ایجاد حساب کاربری
بسیاری از وبسایتها هستند که برای استفاده رایگان از سرویسها و امکاناتشان باید عضوشان بوده و یک حساب کاربری (اکانت) داشته باشید. خیلی از وبسایتها هم هستند که به هر حساب کاربری اجازه استفاده رایگان از خدماتشان را به صورت محدود میدهند؛ به همین دلیل، بسیاری از افراد به دنبال این هستند تا اکانتهای بیشتری در این وبسایتها داشته باشند تا بتوانند به صورت نامحدود و رایگان این خدمات را دریافت کنند. صاحبین این وبسایتها ترجیح میدهند با قرار دادن کپچا به هنگام ثبت نام تا حد امکان جلوی رباتهایی را بگیرند که با سرعت اکانتهای زیادی میسازند. - جلوگیری از ارسال کامنتهای اسپم
همانطور که میدانید ثبت کامنت در مقیاس انبوه در وبسایتهای پربازدید، یکی از راههای تبلیغات و نیز ایجاد بک لینک است. بسیاری از افراد از رباتهای کامنتگذار استفاده میکنند تا بتوانند کامنت معرفی یا تبلیغاتی خود را با سرعت در انبوهی از وبسایتها، وبلاگها، انجمنها و فرومها درج کنند. بخصوص اگر این وبسایتها ترافیک و بازدید خوبی داشته باشند، شانس دیده شدن کامنت و اثربخشی تبلیغات افزایش مییابد.
وجود کپچا در بخش کامنتگذاری وبسایت باعث میشود کامنتگذار ملزم شود برای ثبت نهایی کامنتش، نشان دهد ربات نیست و هویت انسانی خود را ثابت کند. به همین دلیل صاحبین این وبسایتها با قرار دادن کپچا در قسمت کامنت تلاش میکنند تا کامنت گذاشتن در وبسایتها را کمی دشوارتر کنند و مانع از ثبت انبوه کامنت در وبسایتها با استفاده از ربات شوند. - جلوگیری از خرید انبوه و ارائه در بازار سیاه
افرادی هستند که انبوه کالایی را که به مقدار محدود وجود دارد به صورت آنلاین خریداری میکنند و بعد از اینکه موجودی کالا به اتمام رسید با فروش آن کالا به قیمت گزاف در بازار سیاه کسب درآمد میکنند. برای مثال بلیت کنسرت خوانندگان محبوب را در نظر بگیرید. افرادی با استفاده از ربات در همان دقایق اول باز شدن پنل خرید، تعداد انبوهی بلیت را به سرعت خریداری میکنند و بعد از اتمام بلیتهای موجود در سایت، آنها را به صورت آزاد و با قیمت بالاتر به فروش میرسانند؛ به همین دلیل مسئولین اینگونه سایتهای فروش، کپچا را در پروسه خرید قرار میدهند تا خریدار انسانی از ربات تشخیص داده شده و خرید انبوه و سریع توسط ربات متوقف شود. - جلوگیری از هک شدن حسابهای کاربری
معمولا هکرها برای دسترسی پیدا کردن و ورود به حساب کاربری افراد، به صورت اتوماتیک، پسوردهای مختلف را امتحان میکنند تا به نتیجه برسند. وقتی تعداد این تلاشها به یک حدی برسد رفتار فرد مشکوک تلقی شده و کپچا ظاهر میشود. وجود کپچا میتواند مانع تصاحب حساب کاربری افراد شود و امنیت آنها را حفظ نماید. - جلوگیری از پایش و دانلود تمام اطلاعات موجود در وبسایت ها
در بسیاری از وبسایتها اطلاعاتی موجود است که میتوان با ذخیره و گردآوری آنها بانک اطلاعاتی ارزشمندی فراهم کرد و به صورت جداگانه به فروش رساند؛ نظیر سایتهای آگهی که میتوان از دستهبندیها و فیلترهای مختلفش، اطلاعات شخصی آگهیدهندگان (مثلا شماره موبایل) را دانلود کرده و بانک شماره با موضوعات مختلفی گرد آورد. برخی افراد با استفاده از رباتهای استخراج کننده اطلاعات از وبسایتها اقدام به ذخیره و جمعآوری اطلاعات از این سایتها به صورت انبوه میکنند.
اغلب این سایتها تمایلی ندارند تا سایرین به راحتی، به صورت رایگان و انبوه این بانکهای اطلاعاتی را تهیه کرده و در جایی دیگر به فروش برسانند، به همین دلیل با قرار دادن کپچا برای هر دانلود سعی میکنند ذخیره اطلاعات از سایتشان را دشوارتر و کندتر سازند و بدین طریق مانع از گرداوری انبوه اطلاعات شوند.
آیا حل کپچاها به صورت اتوماتیک ممکن است؟
همان طور که اشاره شد کپچا شامل سوالی است که انتظار میرود فقط کاربر انسانی بتواند به آن جواب درست بدهد و ماشین یا ربات نتواند به آن پاسخ دهد اما کپچا وقت کاربر را میگیرد، حوصله او را سر میبرد، سرعت انجام کارها را کند میکند و مانع از پیشرفت سریع امور میشود. علاوه بر این اگر کاربر بخواهد برای انجام سریع کارها در مقیاس انبوه از ربات کمک بگیرد، به نظر میرسد با وجود کپچا چنین امکانی را از دست بدهد. با این تفاصیل، آیا راهی هست که به کمک آن بتوان کپچا را به صورت اتوماتیک رد کرد تا مانع انجام سریع و خودکار امور نباشد؟
در پاسخ باید گفت رد کردن کپچا راهی ندارد جز حل آن! اما سرویسهایی وجود دارند که خدماتی برای حل خودکار کپچا ارائه میدهند. این سرویسها در واقع به جای شما کپچا را حل و پاسخ را برایتان ارسال میکنند. در ارائه خدمات حل خودکار کپچا اغلب 2 روش عمده مورد استفاده قرار میگیرند.
- استفاده از فناوری OCR و دیگر فناوریهای پیچیده و انحصاری
سایتهای حل خودکار کپچا میتوانند با کمک OCR متن را در تصاویر کپچا تشخیص دهند و یا با جمعآوری تعداد زیادی از کپچاها در یک بانک اطلاعاتی و دسترسی به آن، الگوریتمی برای پیدا کردن مورد مشابه فراهم کنند. این روشها برای حل برخی کپچاها میتوانند تا حدی جوابگو باشد. اما روش جایگزین (روش شماره 2) این سایتها، احتمال حل کپچا را به 100 درصد میرسانند. - خدمات انسانی حل کپچا
از آنجا که همه کپچاها نمیتوانند با استفاده از فناوری برنامه نویسی (مطرح شده در روش شماره 1) حل شوند، سایتها افرادی را به کار میگیرند تا به جای مشتریان، کپچاها را حل کنند. بیشتر وبسایتهای حل خودکار کپچا (نظیر سایت 2Captcha و AntiCaptcha) برای ارائه نتیجه درست و دقیق به نیروی انسانی تکیه میکنند. در این روش احتمال حل کپچا 100 درصد است زیرا یک انسان آن را حل میکند. برای حل کپچاها به حلکنندگان، مبلغی به عنوان حق الزحمه پرداخت میشود و افراد زیادی با انگیزه کسب درآمد، داوطلب کار برای این وبسایتها میشوند.
اجازه دهید در ادامه این مطلب، توضیحات بیشتری در این باره خدمت شما ارائه دهیم.
توضیح بیشتر درباره خدمات انسانی حل کپچا برخی سایتها
سایتهایی نظیر 2Captcha و AntiCaptcha و SolveCaptcha که در ارائه خدمات حل خودکار کپچا پیشرو هستند برای ارائه خدمات انسانی حل کپچا، از یک روش گردشی جالب و بر خط استفاده میکنند. زمانیکه وارد این وبسایتها میشوید با سه قسمت مواجه خواهید شد:
- مشتریان (Customer)
- حلکنندگان (Worker)
- برنامهنویسان (Developer)
منظور افرادی هستند که میخواهند از خدمات این وبسایتها برای حل اتوماتیک کپچا استفاده کنند و برای استفاده از خدمات هزینه پرداخت میکنند.
منظور افرادی هستند که از راه دور (در خانه خود) به حل کپچاهایی میپردازند که سایت حل کپچا (نظیر 2Captcha و AntiCaptcha) برای آنها میفرستد و حق الزحمه دریافت میکنند.
منظور افرادی هستند ارتباط بین مشتریان و حلکنندگان را در نرم افزار خود بطور اتوماتیک برقرار میکنند.
حدس زدن ارتباط بین این 3 قسمت آسان است...
اگر شما مشتری باشید (یعنی کسی که میخواهد کپچای او حل شود) باید در سایت ثبت نام کرده و پنل کاربری خود را در این سایتها به یک مبلغی شارژ نمایید تا بتوانید از خدمات حل خودکار کپچا بهره مند شوید. استفاده از خدمات حل خودکار کپچا بسیار ارزان است و حل خودکار هر 1000 کپچا برای مشتری فقط حدود 1 دلار هزینه دارد.
حال از طرف دیگر اگر شما بخواهید در نقش حل کننده کپچا (Workers) قرار بگیرید نیاز به هیچ مهارت خاصی ندارید و با هر سنی و از هر جای دنیا با داشتن تنها یک گوشی هوشمند یا کامپیوتر و دسترسی به اینترنت میتوانید به این کار مشغول شوید. کافیست در سایت ثبت نام کرده و بافشردن دکمه Start Work یک آموزش 5 دقیقهای ببینید تا بتوانید کار خود را شروع کنید. از این پس برای کار کردن، شما باید زمان آنلاین بودن خود را مشخص کرده و دکمه آماده به کار را در وبسایت بفشارید. سپس بلافاصله در مرورگر خود کپچاهایی خواهید دید که باید به حل آنها مبادرت ورزید و بعد از حل هر کپچا پنل کاربری شما به اندازه یک مبلغ مختصری شارژ خواهد شد که بعدا میتوانید درخواست دهید تا این مبلغ را به حساب بانکی شما انتقال دهند. حلکنندگان کپچاها معمولا به ازای 2 ساعت کار، حداقل 1 دلار درآمد دارند.
اما داستان برنامه نویسان جالبتر و البته پیچیدهتر از هر دو مورد فوق است. برنامهنویسان از طریق کدهایی که مینویسند مشتریان را بطور خودکار (و در پس زمینه) به حلکنندگان وصل کرده و نتیجۀ نهایی حل کپچا را به مشتریان تحویل میدهند.
اگر دوست دارید در مورد کار برنامه نویسان و اینکه چگونه از طریق کد نویسی در یک نرم افزار یا در یک مرورگر ارتباط بین مشتریان و حل کنندگان را برقرار میکنند اطلاعات بیشتری کسب کنید در ادامه با ما همراه باشید.
برنامه نویسان چگونه برای حل خودکار کپچا، ارتباط بین مشتریان و حلکنندگاه کپچا را برقرار میکنند؟
فرض کنید میخواهید با استفاده از ربات کامنت گذار در انبوهی از وبسایتها، کامنت معرفی خود را ثبت کنید. در این صورت هر بار که ربات بخواهد متن دلخواه شما را در هر یک از وبسایتهای موجود در لیست درخواستی شما درج کند با یک کپچا روبرو خواهد شد اما ربات قابلیت حل کپچا را ندارد. اینجاست که برنامه نویس باید بین ربات (مشتری) و سایت حل کپچا (حل کننده کپچا) ارتباطی برقرار کند تا ربات با کمک خدمات آن وبسایت بتواند کپچا را به صورت اتوماتیک حل کند.
معمولاً برنامه نویسان این دسته از نرمافزارها را (که کاری را به صورت انبوه و خودکار انجام میدهند اما ظاهر شدن کپچا مانع کارشان است) به گونهای طراحی میکنند که قابلیت حل خودکار کپچا از طریق ارتباط با وبسایت ارائه دهنده خدمات حل کپچا را داشته باشد؛ لذا این نرمافزارها هر زمان که به کپچا برسند:
- در درجه اول تصویر کپچا را به صورت خودکار دانلود میکنند.
- سپس عکس دانلود شده را از طریق API یا روشهای دیگر، برای سایت حل کپچا ارسال میکنند (شرح و تفصیل جزئیات API از حوصله این مقاله خارج است؛ لذا آن را به مقالهای دیگر واگذار کردهایم).
- سرور پس از دریافت تصویر کپچای شما، یک آیدی به کپچای شما اختصاص میدهد و بلافاصله آن تصویر از طرف سرور برای یکی از حلکنندگان آنلاین وبسایت ارسال میشود تا آن را حل کند و پاسخ را برای سرور پس بفرستد.
- بعد از 5 ثانیه نرمافزار (با ارسال دستور خاصی به سرور) از سایت حل کپچا پاسخ کپچا را درخواست میکند. اگر کپچا در این فاصله حل شده باشد، پاسخ از طرف سرور برای نرم افزار ارسال میشود. البته ممکن است حل کننده مسئول حل کپچای شما که تصویر کپچا برایش ارسال شده است، در این فاصله مشغول بوده و هنوز فرصت حل کپچای ارسالی از طرف شما را پیدا نکرده باشد. در این صورت 5 ثانیه بعد دوباره درخواست دریافت پاسخ از طرف نرمافزار شما به سرور ارسال میشود.
- در نهایت در صورت آماده بودن پاسخ کپچا، سرور آن را در قالب یک کد به نرمافزار پس میدهد و نرمافزار، این کد دریافتی را در فیلد مربوطه وارد کرده و آن را ثبت میکند.
به صورت خلاصه در ابتدای این مطلب شما را با مفهوم کپچا و دلایل استفاده از آن در بسیاری از وبسایتها آشنا کردیم. سپس به این موضوع پرداختیم که حل اتوماتیک کپچا چگونه با کمک وبسایتهای ارائهدهنده خدمات حل کپچا امکانپذیر است. مشاهده کردید که این وبسایتها در واقع نقش واسطه را بین مشتریان و حلکنندگان کپچا ایفا میکنند.
مشتریان اغلب افرادی هستند که قصد دارند از یک نرمافزار جهت انجام انبوه و خودکار کاری استفاده کنند که وجود کپچا مانع کارش است. در چنین شرایطی برنامه نویسان، یک نرمافزار را با استفاده از کدهایی که در آن میگنجانند به وبسایت ارائه دهنده خدمات حل خودکار کپچا ارتباط میدهند تا هر بار که به کپچایی برخورد کرد تصویر آن را برای سرور سایت ارسال کند. سایت هم به عنوان واسطه، این تصویر را برای یکی از حلکنندگان ارسال میکند تا در لحظه این کپچا را حل کرده و پاسخ را پس بفرستند. با حل شدن هر کپچا مبلغ مختصری به عنوان حق الزحمه از حساب مشتری کاسته و به حساب حل کننده افزوده شده و درصدی هم به عنوان حق کمیسیون به وبسایت واسطه تعلق میگیرد.
پس همان طور که مشاهده کردید کپچا، تستی است که برای تمیز دادن کاربر انسانی از ربات و ممانعت از ادامه کار ربات برای انجام برخی امور خاص اینترنتی طراحی شده است اما وجود وبسایتهای ارائهدهنده خدمات حل کپچا راه را برای استفاده موفق و موثر از رباتها علیرغم وجود کپچا باز کردهاند. با وجود چنین خدماتی، کپچا دیگر مانعی برای استفاده از رباتها در انجام اتوماتیک و انبوه بسیاری از امور نیست.
امیدواریم که مطالب مطرح شده در این مقاله برای شما مفید واقع شوند. منتظر نظرات، پیشنهادات، سوالات و شرح تجربیات شما در این باره هستیم.