آموزش نصب سیستم ضد اسپم Honeypot برای Laravel

بدون دیدگاه

ارسال اسپم به فرم های وب سایت ها یکی از مشکلات بزرگ طراحان و برنامه نویسان وب است . نرم افزارهای زیادی هستند که در وب می خزند و اطلاعات بی ارزش و آزار دهنده را راهی فرم ها می کنند .نرم افزارهای زیادی هم هستند که به مقابله با این ارتش آزار دهنده برخواسته اند . از Captcha های در هم تنیده تا روش های نسبتا ساده که تا حد زیادی جلوی اسپم ها را می گیرند .

در این مقاله می خواهیم یکی از روش های ساده ولی کارامد برای جلویگری از ارسال اسپم در فریم ورک محبوب Laravel را بررسی کنیم و از آن استفاده کنیم .بسته ی مورد نظر ماHoneypot است که در آدرس زیر قرار دارد :

https://github.com/msurguy/Honeypot

ازHoneypot در کجای سایت می توان استفاده کرد ؟

  • فرم های تماس
  • فرم های ثبت نام و ورود
  • فرم های جستجو و نظرخواهی و …

بسته Honeypot چگونه کار می کند ؟

روش کار Honeypot نسبتا ساده و کارامد است . بدین ترتیب که Honeypot یک فیلد به فرم اضافه می کند که باید خالی بماند ولی اسپمر ها که معمولا همه فیلد ها را پر می کنند این فیلد را نیز پر می کنند و در این صورت Honeypot می فهمد که ارسال کننده فرم یک اسپمر است. همچنین Honeypot زمان ارسال فرم را نیز در نظر می گیرد واگر کاربر سریعا فرم را پر کند به احتمال زیاد اسپمر است .

Honeypot یک سری کد به شکل زیر به فرم تان اضافه می کند:

<div id="my_name_wrap" style="display:none;">
<input name="my_name" type="text" value="" id="my_name">
<input name="my_time" type="text" value="eyJpdiI6InlJTUtFTWFwVWFuNGxMV2lJTjd3XC93PT0iLCJ2YWx1ZSI6ImhVNVlJU2paSlpHY04zNWY3ODJZMFE9PSIsIm1hYyI6IjRmOGIzZDI3YTI0MmE5NGJkNTQzYmU0OGI5YTFmNzBkZDA1OTM0MWEzYWI3ZDU5ZmFmNjdhZWQ3NmY1NjQwYTUifQ==">
</div>

سپس دستور composer update را اجرا کنید تا فایل های مربوطه دانلود و کپی شوند.

در همین رابطه :   لاراول 5.6 از الگوریتم هش رمز عبور جدید Argon2i پشتیبانی خواهد کرد!

چگونه Honeypot را نصب کنم؟

فایل composer.json را باز کرده و خط زیر را در بخش require وارد کنید تا به صورت زیر درآید:

{
    "require": {
        "msurguy/honeypot": "dev-master"
    }
}

سپس فایل config/app.php را باز کنید و در بخش providers کد زیر را اضافه کنید:

        Msurguy\Honeypot\HoneypotServiceProvider::class,

و در پایین همین بخش در قسمت aliases کد زیر را وارد کنید:

        'Honeypot' => Msurguy\Honeypot\HoneypotFacade::class

خوب حالا کار نصب Honeypot تمام شد . نحوه استفاده از آن را در زیر خواهیم دید.

چگونه از Honeypot در لاراول استفاده کنم؟

با اضافه کردن کد Honeypot::generate(..) می توانید Honeypot را به فرم های لاراول اضافه کنید مثل این :

برای لاراول 5 و بالاتر :

{!! Form::open('contact') !!}
    ...
    {!! Honeypot::generate('my_name', 'my_time') !!}
    ...
{!! Form::close() !!}

برای نسخه های دیگر لاراول :

{{ Form::open('contact') }}
    ...
    {{ Honeypot::generate('my_name', 'my_time') }}
    ...
{{ Form::close() }}

سپس باید با استفاده از Validation لاراول ، مقادیر برگشتی Honeypot ار چک کنیم . به صورت زیر :

$rules = array(
    'email'     => "required|email",
    ...
    'my_name'   => 'honeypot',
    'my_time'   => 'required|honeytime:5'
);

$validator = Validator::make(Input::get(), $rules);

دقت کنید که “honeytime” یک پارامتر هم دارد که تعداد ثانیه هایی است که کاربر فرصت دارد فرم را تکمیل کند والا اسپم به حساب خواهد آمد.

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

منبع + +

دسته بندی : Laravel

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

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