چگونه با دستان خالی با اسپم و ربات های اسپم مقابله کنیم؟

بدیهی است که هر چه وب سایت محبوبتری داشته باشید به همان اندازه هم اسپم های گوناگونی دریافت می کنید، راه های مختلفی برای مقابله با اسپم و ربات های اسپم(Spam Robots) وجود دارد.

یکی از این روش ها مسدود کردن آدرس های IP است که در پست آموزشی امنیت وردپرس: بلاک کردن IP های مشکوک درباره آن صحبت کردیم.

این روش یک مشکل اساسی دارد، آدرس های IP دائما در حال تغییر هستند و اسپمرها معمولا از IP های داینامیک استفاد می کنند.

راه حل دیگر حذف فیلد آدرس وب سایت از فرم ارسال دیدگاه است که در مطلب مقابله با اسپم در وردپرس: حذف فیلد وبسایت از فرم ارسال نظر به این موضوع پرداختیم.

این روش برای مقابله با کاربران و اسپمرهایی است که می خواهند لینک وب سایت شان را در بین کامنت های شما قرار دهند، با حذف این فیلد می توانید تا حدودی از دریافت اسپم جلوگیری کنید.

روش دیگر پیاده سازی کپچا در فرم های وب سایت تان است، کپچا انواع و اقسام مختلفی دارد که در مقالات آموزشی امنیت وردپرس را به ریکپچای(Invisible reCaptcha) گوگل بسپارید! و آموزش پیاده سازی کپچای گوگل در وردپرس بدون نصب افزونه به آن پرداختیم.

راه حل چهارم که هدف این مقاله است افزودن یک فیلد مخفی به فرم های وب است، این روش برای مقابله با اسپمرهای خودکار(Automated Spammers) یا ربات های اسپم بسیار مناسب است.

کار را شروع می کنیم، ابتدا فیلد زیر را به فرم مدنظرتان مثلا تماس با ما اضافه کنید.

<div style="display: none">
    <label for="secondary_email">Your Secondary Email:</label>
    <input type="text" name="secondary_email" id="secondary_email"/>
</div>

می توانید یک کلاس CSS برای این فیلد تعریف کرده و از طریق CSS آن را مخفی کنید.

<div class="check-visitor">
    <label for="secondary_email">Your Secondary Email:</label>
    <input type="text" name="secondary_email" id="secondary_email"/>
</div>
.check-visitor{
    display: none;
}

یا با jQuery این کار را انجام دهید.

$(document).ready(
    $('.check-visitor').hide();
); 

حالا کافی است هنگام سابمیت فرم از طریق PHP مقدار فیلد secondary_email را بررسی کنید، اگر فیلد خالی باشد یعنی یک بازدیدکننده واقعی فرم را برای شما ارسال کرده در غیر این صورت بازدیدکننده ربات اسپم بوده است.

if( !empty( $_POST['secondary_email'] ) ) {
	// ربات اسپم
} else {
	// بازدیدکننده واقعی
}

جمع بندی

هنگامی که ربات های اسپم به صفحه تماس با ما مراجعه می کنند کدهای HTML صفحه را بررسی و فیلدها را تکمیل می کنند، آنها متوجه این موضوع نمی شوند که شما یکی از فیلدها را مخفی کرده اید.

البته برخی ربات های اسپم هوشمندتر شده اند و می توانند کدهای جاوا اسکریپت و CSS را پردازش کنند، بنابراین بهتر است فیلد مدنظرتان را به صورت همزمان با CSS و JS مخفی کنید.

نظرات و سوالات کاربران
  1. سلام وقت بخیر مهندس یاور نیا عزیز
    شما برای عضویت خبرنامه که در صفحه اصلی سایتتون قرار داره از افزونه خاصی استفاده کردید
    ممنون

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *