با استفاده از این کتابخانه مفید پایتون، در کمترین زمان آزمایش های CAPTCHA خود را انجام دهید.
CAPTCHA که در اوایل دهه 2000 معرفی شد، ده ها سال است که کاربران را آزار می دهد. از پیدا کردن تصاویر اتوبوس گرفته تا وارد کردن یک رشته حروف عجیب و غریب یا حل مسائل ریاضی، راههای زیادی وجود دارد که سایتها از شما میخواهند تا ثابت کنید که ربات نیستید.
اما آیا تا به حال از خود پرسیده اید که CAPTCHA چگونه کار می کند و چرا وب سایت ها شما را مجبور به حل آنها می کنند؟
CAPTCHA چیست؟
CAPTCHA مخفف Completely Automated Public Test Turing برای تشخیص کامپیوترها و انسان ها از یکدیگر است. همانطور که از نامش پیداست، بین انسان و کامپیوتر تمایز قائل است.
مفهوم اصلی CAPTCHA بر فقدان هوش کامپیوتری برای تشخیص الگوها متکی است. کامپیوتر میتواند حروف را تشخیص دهد، اما در مواردی که تغییر کرده یا با نویز پسزمینه زیادی وجود دارد، نه. در همین حال، انسانها برای نسلها به سختی میتوانند الگوها را به عنوان یک مکانیسم ایمنی شناسایی و شناسایی کنند.
انواع CAPTCHA
CAPTCHA انواع مختلفی دارد که تعدادی از آنها عبارتند از:
1. CAPTCHA تصویر مبتنی بر متن
CAPTCHA مبتنی بر متن از مجموعه ای از کلمات یا عبارات یا ترکیبی تصادفی از حروف، اعداد و نمادهای مختلف استفاده می کند. این مجموعه ای از شخصیت ها را به شکلی بیگانه نشان می دهد که تفسیر آن کمی دشوار است.
این موارد عبارتند از اعوجاج، چرخش، چرخاندن، لغزش، سبک حروف بزرگ و همپوشانی با کاراکترهای مجاور. برای تقویت این تکنیک، یک CAPTCHA ممکن است شامل گرافیک هایی مانند خطوط، کمان ها یا نقاط به صورت تصادفی باشد که در سراسر تصویر پخش شده اند.
2. CAPTCHA صوتی
CAPTCHA صوتی به عنوان جایگزینی برای CAPTCHA های مبتنی بر متن عمل می کند و به کاربران کم بینا پاسخ می دهد. Audio CAPTCHA یک ضبط صوتی از دنباله ای از حروف یا اعداد را ارائه می دهد که کاربر باید به درستی وارد کند. باز هم، اعوجاج وجود دارد، این بار به صورت نویز پس زمینه اضافه شده است. نکته جالب توجه این است که ماژول CAPTCHA پایتون فقط با اعداد کار می کند.
3. تصویر کپچا
CAPTCHAهای تصویری جایگزینی برای CAPTCHAهای تصویری مبتنی بر متن هستند. اینها CAPTCHA های معمولی هستند که روزانه با آنها برخورد خواهید کرد.
این CAPTCHA ها از شما می خواهند که یک شی خاص مانند قایق، کامیون یا شیر آتش نشانی را شناسایی کنید. آنها این تصاویر را در کنار تصاویر دیگری برای انتخاب ارائه می دهند. این تستها بسیار انسانپسندتر از تستهای مبتنی بر متن هستند و همچنین تشخیص آن برای رباتها دشوارتر است.
4. ریاضی، مسئله کلمه، و پازل CAPTCHA
CAPTCHAهای ریاضی اغلب یک مسئله ساده حسابی مانند 17 + 23، 16 * 10 یا 30/10 را با عناصر گرافیکی اضافه شده نشان می دهند.
مشکل کلمه CAPTCHA دنباله ای از کلمات یا موارد مرتبط را ارائه می دهد و از شما می خواهد که جاهای خالی را با پاسخ مناسب پر کنید.
پازل کپچا شامل حل یک پازل کوچک مانند کشیدن یک نوار به طول صحیح است تا قطعه گم شده تصویر را کامل کند.
5. بدون CAPTCHA ReCAPTCHA
گوگل مالک ReCAPTCHA است که از تجزیه و تحلیل ریسک پیشرفته و چالش های تطبیقی برای جلوگیری از ربات ها استفاده می کند. ReCAPTCHA محتوا را از نمای خیابان گوگل، روزنامه ها، کتاب ها و موارد دیگر بازیابی می کند.
بدون CAPTCHA ReCAPTCHA از شما میخواهد که گزینه «من یک ربات نیستم» را بدون اینکه از شما بخواهد هیچ آزمایشی را انجام دهید، علامت بزنید. این امکان وجود دارد زیرا حرکات را ردیابی می کند و کلیک را شناسایی می کند. نکته ای که باید به آن توجه کنید این است که ReCAPTCHA اطلاعات خصوصی شما را نیز ثبت می کند.
شما می توانید یک فرم اعتبار سنجی CAPTCHA با استفاده از HTML، CSS و JS و همچنین با استفاده از ماژول CAPTCHA Python ایجاد کنید.
ماژول CAPTCHA پایتون
پایتون با یک ماژول فوقالعاده به نام CAPTCHA ارائه میشود که به شما کمک میکند تا در لحظهها CAPTCHAهای تصویری و صوتی مبتنی بر متن ایجاد کنید. اگرچه این ماژول یک سبک و صدای فونت داخلی را ارائه می دهد، می توانید از داده های صدا و فونت خود برای سفارشی کردن CAPTCHA حتی بیشتر استفاده کنید.
برای نصب ماژول CAPTCHA در محیط پایتون، پنجره ترمینال را باز کرده و تایپ کنید:
pip install captcha
نحوه ایجاد یک CAPTCHA تصویر مبتنی بر متن با استفاده از پایتون
کل کد منبع برای تولید CAPTCHA تصویری و صوتی مبتنی بر متن سفارشی در این موجود است
مخزن GitHub
.
برای ایجاد یک تصویر CAPTCHA مبتنی بر متن با استفاده از پایتون می توانید این مراحل را دنبال کنید:
- وارد کردن ماژول ImageCaptcha واقع در captcha.image.# وارد کردن کتابخانه های مورد نیاز از captcha.image import ImageCaptcha
- یک عرض و ارتفاع سفارشی برای CAPTCHA خود مشخص کنید و یک نمونه از آن ایجاد کنید.# specify dimensionsimage = ImageCaptcha (عرض = 300، ارتفاع = 100)
- دنباله ای از کاراکترها را به عنوان ورودی کاربر با استفاده از تابع input() در نظر بگیرید تا آن را به فرمت CAPTCHA مبتنی بر متن تبدیل کنید.
- متنی را که از کاربر دریافت کردید به image.generate() ارسال کنید تا CAPTCHA ایجاد شود.# ایجاد captchadata مبتنی بر متن = image.generate(captcha_text)
- متن CAPTCHA و نام فایل تصویر را به همراه پسوند آن به image.write() ارسال کنید تا تصویر تولید شده ذخیره شود CAPTCHA.
# importing the required libraries
from captcha.image import ImageCaptcha
# specify dimensions
image = ImageCaptcha(width = 300, height = 100)
# enter the text to create its captcha
captcha_text = input("Please enter text: ")
# generate the text-based captcha
data = image.generate(captcha_text)
# save the captcha image file
image.write(captcha_text, (captcha_text) + ".png")
خروجی CAPTCHA تصویر مبتنی بر متن با استفاده از پایتون
یکی از بهترین ویژگی های این ماژول این است که متن یکسانی را در رنگ ها، سبک ها و چولگی های مختلف تولید می کند. این چند نمونه از نمونه های تولید شده است.
این یک طراحی جذاب دیگر است که از طریق همین برنامه ایجاد شده است.
نحوه ایجاد یک CAPTCHA صوتی با استفاده از پایتون
برای ایجاد یک CAPTCHA صوتی با استفاده از پایتون مراحل زیر را دنبال کنید:
- وارد کردن ماژول AudioCaptcha از captcha.audio.# وارد کردن کتابخانه های مورد نیاز از captcha.audio import AudioCaptcha
- ایجاد یک نمونه از AudioCaptcha().# ایجاد یک نمونه صوتیaudio = AudioCaptcha()
- ارقام را به عنوان ورودی کاربر با استفاده از تابع input() برای ایجاد CAPTCHA صوتی آن در نظر بگیرید.# عدد کپچای صوتی، به عنوان مثال: 32135captcha_text = ورودی (“لطفاً شماره را وارد کنید:”)
- متنی را که از کاربر دریافت کردهاید به audio.generate() ارسال کنید تا CAPTCHA ایجاد شود.
- متن CAPTCHA و نام فایل صوتی را به همراه پسوند آن به audio.write() منتقل کنید تا صدای تولید شده CAPTCHA ذخیره شود.# save the audio fileaudio.write(captcha_text, “audio”+captcha_text+’.wav’)
# importing the required libraries
from captcha.audio import AudioCaptcha
# creating an audio instance
audio = AudioCaptcha()
# audio captcha number, eg: 32135
captcha_text = input("Please enter number: ")
# generate the audio-based captcha
audio_data = audio.generate(captcha_text)
# save the audio file
audio.write(captcha_text, "audio"+captcha_text+'.wav')
اگر اعداد 970322 را وارد کنید، این برنامه CAPTCHA صوتی یک فایل audio970322.wav ایجاد می کند که ارقام را به ترتیب با یک دسته نویز پس زمینه بیان می کند.
کاربردهای فراوان CAPTCHA
عملکرد اصلی CAPTCHA جلوگیری از هرزنامه و سوء استفاده توسط ربات ها در یک وب سایت است. آنها به حفظ دقت نظرسنجی های آنلاین با جلوگیری از هجوم ربات ها به آنها با پاسخ های منفی کمک می کنند. آنها به عنوان لایه ای از محافظت در برابر حملات brute force عمل می کنند و تعداد دفعاتی را که کاربر برای ورود به وب سایت تلاش می کند محدود می کند.
CAPTCHA همچنین می تواند به جلوگیری از نظرات خودکار کمک کند و به ایمن کردن دروازه های پرداخت با مشکل حل آنها کمک کند.