۵ راه مقابله با اسپم در فرم‌ها

17 تیر 1400
...
مهدی آبادانی
2 سال پیش
...
وقتی شما یک برنامه درست می‌کنید، مطمئن باشید که خیلی زود با یک ربات اسپم مواجه می‌شوید و این اجتناب‌ناپذیر است.

در یکی از پروژه‌های من از طریق فرم ثبت‌نام به من حمله شد و در آخر منجر به ۱۷۰۰۰ کاربر فیک شد که پاک کردن آن‌ها خیلی زمان‌بر بود. بعد از آن من در توییتر از بقیه افراد پرسیدم که چگونه در برابر ربات‌ها می‌ایستند و مقابله می‌کنند و به جواب‌های خیلی خوبی رسیدم. من هم می‌خواهم تمام موارد ذکر‌شده را به اشتراک بگذارم تا در صورت برخورد، بدانید که باید چه کار کنید.

۱. Cloudflare
اگر شما از سرویسی مانند Cloudflare استفاده می‌کنید، می‌توانید از “page rules” آن‌ها استفاده کرده و URL های مربوط به فرم‌های خود را ببندید.
من فکر نمی‌کنم که این روش مانند روش‌های دیگر به خوبی کار کند اما اگر شما هم‌اکنون از این سرویس استفاده می‌کنید، راه انداختن این قابلیت خیلی سریع خواهد بود و به هیچ‌جای دیگری آسیب نمی‌زند.

۲. Honeypot
Honeypot ها در واقع در اولین لایه دفاعی هستند و راه‌اندازی بسیار ساده‌ای دارند. طرز کار‌ها این است که شما یک input که hidden است را به فرم خود اضافه می‌کنید که هیچ زمانی یک value نخواهد داشت. سپس هر زمانی که آن فرم submit شود، اگر آن Input یک value داشته باشید یعنی از طرف یک bot بوده.

شما می‌توانید این را خودتان پیاده‌سازی کنید اما با وجود پکیج‌هایی مانند spatie/laravel-honeypot می‌توانید این کار را بسیار راحت‌تر کنید.

۳. ایمیل‌های اعتبار‌سنجی
اگر فرم شما دارای input ایمیل است، ( مانند فرم‌های جدید ) شما می‌توانید یک ایمیل اعتبار‌سنجی برای کاربر بفرستید تا ایمیل خود را تایید کند. این دقیقا روشی است که بسیاری از خبرنامه‌ها کار می‌کنند. شما ایمیل خود را وارد می‌کنید. سرویس‌ها به شما یک ایمیل می‌فرستند. شما ایمیل را باز می‌کنید و روی confirm می‌زنید. و پس از آن شما در خبرنامه عضو هستید.

این روش باعث می‌شود برنامه به این که شما ربات نیستید اطمینان پیدا کند.

۴. Captcha
این آخرین روشی است که من برای تشخیص ربات پیشنهاد می‌کنم و به این روش خیلی اعتقادی ندارم. زیرا با آمدن روش‌های نوین پردازش تصویر و ... شاید بتوان این روش را دور زد. البته که Captchaهایی مانند سرویس‌هایی که گوگل می‌دهد بسیار قدرتمند هستند.

این روش کاربران واقعی را نیز کمی اذیت می‌کند

۵. سرویس‌های اختصاصی تشخیص اسپم
معروف‌ترین سرویس‌های تشخیص اسپم عبارتند از: Akismet که برای وردپرس است و Stop Forum Spam. Akismet پولی است و Stop Forum یک سرویس رایگان است.

من تقریبا در تمام سایت‌های وردپرسی‌ام از Akismet استفاده می‌کنم اما شما می‌توانید آن را در هر سایتی مانند لاراول نیز استفاده کنید. تنها نیاز است که مروری بر api آن‌ داشته باشید.

Stop Forum یک سرویس رایگان بود که بسیار شبیه به Akismet است و پکیج‌هایی مانند nickurt/laravel-stopforumspam می‌توانند در راه‌انداختن آن به شما کمک کنند.

سخن پایانی

با تمام این گزینه‌ها، من به شما شروع کردن با honeypot را پیشنهاد می‌کنم و اگر این گزینه موفق نبود، آن موقع به سمت گزینه‌ای دیگر بروید. تا زمانی که تمام ربات‌ها را در حمله به سایت‌تان متوقف کنید. فقط به یاد داشته باشید که چیزی که امروز کار می‌کند ممکن است فردا کار نکند. بنابراین همیشه یک جنگ بین سایت‌ها و اسپمر‌ها وجود خواهد داشت.
لینک کوتاه: inovaa.ir/b/2
اسپم.فرم.برنامه نویسی

در بحث پیرامون این پست شرکت کنید!

ارسال دیدگاه
...
مهدی آبادانی

پیشنهاد میکنیم این مقالات را هم بخوانید

0 دیدگاه