در این آموزش از مالبو تیم، یاد میگیرید چگونه Google reCAPTCHA v2 را به پروژههای لاراول خود اضافه کنید تا امنیت فرمها را افزایش داده و از حملات رباتها جلوگیری کنید. مراحل زیر را به دقت دنبال کنید.
فهرست مطالب
- مقدمه
- دریافت کلیدهای reCAPTCHA از گوگل
- نصب پکیج reCAPTCHA در لاراول
- تنظیم کلیدها در فایل
.env - افزودن reCAPTCHA به فرمها
- اعتبارسنجی reCAPTCHA در کنترلر
- تست و بررسی
مقدمه
استفاده از کپچا (CAPTCHA) در وبسایتها یکی از روشهای مؤثر برای افزایش امنیت و جلوگیری از فعالیتهای مخرب است. با گسترش روزافزون حملات سایبری و فعالیت رباتهای خودکار، ضرورت استفاده از ابزارهایی مانند کپچا بیش از پیش احساس میشود. کپچا با تشخیص انسان از ربات، از انجام فعالیتهای ناخواسته مانند ارسال اسپم، ثبتنامهای جعلی، حملات brute force و سایر سوءاستفادهها جلوگیری میکند.
در این مقاله، به اهمیت استفاده از کپچا در سایت مالبو تیم و مراحل پیادهسازی آن میپردازیم. با افزودن این لایه امنیتی، میتوانید از فعالیتهای ناخواسته جلوگیری کرده و محیطی امن و مطمئن برای کاربران خود ایجاد کنید.
دریافت کلیدهای reCAPTCHA از گوگل
- به سایت Google reCAPTCHA بروید.
- اگر حساب گوگل ندارید، یک حساب ایجاد کنید و وارد شوید.
- در بخش Label، یک نام برای پروژه خود وارد کنید (مثلاً: Malbo.ir Laravel Project).
- نوع reCAPTCHA را reCAPTCHA v2 و گزینه "I'm not a robot" Checkbox انتخاب کنید.
- دامنههای خود را وارد کنید (مثلاً:
localhostبرای توسعه یا دامنه اصلی سایت). - روی Submit کلیک کنید.

پس از ثبت، Site Key و Secret Key را کپی و ذخیره کنید. این کلیدها در مراحل بعدی نیاز خواهند شد.

نصب پکیج reCAPTCHA در لاراول
- به پروژه لاراول خود بروید و ترمینال را باز کنید.
- reCAPTCHA را با دستور زیر نصب کنید:
composer require anhskohbo/no-captcha
- در مرحله بعدی , دستور زیر را در ترمینال وارد کنید :
php artisan vendor:publish --provider="Anhskohbo\NoCaptcha\NoCaptchaServiceProvider"
- پس از نصب، به مسیر config/app.php بروید و کد زیر را در قسمت providers وارد کنید
Anhskohbo\NoCaptcha\NoCaptchaServiceProvider::class,

به مسیر config/app.php بروید و کد زیر را در قسمت aliases وارد کنید :
'NoCaptcha' => Anhskohbo\NoCaptcha\Facades\NoCaptcha::class,

تنظیم کلیدها در فایل .env
- فایل
.envپروژه خود را باز کنید. - کلیدهای دریافتی از گوگل را به این صورت اضافه کنید:
NOCAPTCHA_SECRET=your_site_key NOCAPTCHA_SITEKEY=your_secret_key
- تغییرات را ذخیره کنید.
افزودن reCAPTCHA به فرمها
- به فایل blade فرم مورد نظر خود بروید (مثلاً: login
.blade.php). - در بخشی که میخواهید کپچا نمایش داده شود، کد زیر را اضافه کنید:
{!! NoCaptcha::renderJs() !!} {!! NoCaptcha::display() !!}
اعتبارسنجی reCAPTCHA در کنترلر
- به کنترلر مربوط به فرم خود بروید (مثلاً: login
Controller.php). - در متد مربوط به ارسال فرم، اعتبارسنجی reCAPTCHA را اضافه کنید:
$request->validate( [ 'g-recaptcha-response' => ['required', 'captcha'], ], [ 'g-recaptcha-response.required' => 'plase click im a not robot for not bot' ] );
تست و بررسی
- سرور لاراول خود را اجرا کنید:
php artisan serve
- به فرم مورد نظر بروید و مطمئن شوید که reCAPTCHA نمایش داده میشود.
- فرم را بدون تیک زدن reCAPTCHA ارسال کنید و بررسی کنید که خطای مربوطه نمایش داده شود.
- فرم را با تیک زدن reCAPTCHA ارسال کنید و مطمئن شوید که به درستی پردازش میشود.


مهدی ایروانی
سنندجی

پرسش و پاسخ
0: تعداد نظرات