برنامه نویسی

نحوه ساخت یک سیستم احراز هویت ایمن در لاراول

اگر در حال ساخت یک برنامه Laravel هستید و از تأیید اعتبار پیش فرض خارج از جعبه استفاده می کنید …

شما حداقل کار را انجام می دهید. این همیشه کافی نیست.

هکرها باهوش تر هستند. کاربران انتخاب کننده هستند.
امنیت دیگر یک ویژگی نیست – این اولین خط دفاع برنامه شما است.

بگذارید به شما نشان دهم که چگونه ساخت سیستم احراز هویت محکم و ایمن در لاراول این از کاربران شما – و شهرت شما محافظت می کند.

شرح تصویر

چرا لاراول؟ و چرا امنیت است شما کار

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

امنیت یک ذهنیت است. و در لاراول نیز یک سری از شیوه های هوشمند است:

  • اعتبار سنجی همه چیز (همیشه)
  • رمزگذاری داده های حساس
  • جلوگیری از دسترسی غیرمجاز
  • با استفاده از هشویی مدرن
  • فعال کردن 2FA و بیشتر

بیایید همه آن را خراب کنیم.


مرحله 1: با نسیم Laravel یا Laravel JetStream شروع کنید

Laravel باعث می شود که تأیید اعتبار با Breeze یا JetStream ، احراز هویت داربست را آسان کنید.

برای نصب نسیم:

composer require laravel/breeze --dev
php artisan breeze:install
npm install && npm run dev
php artisan migrate
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

✅ شما اکنون دارید:

  • ورود
  • ثبت نام
  • تنظیم مجدد رمز عبور
  • تأیید ایمیل

آیا می خواهید با 2FA ، جلسات و تیم ها پیشرفته تری داشته باشید؟


مرحله 2: رمزهای عبور ساده را ذخیره نکنید (همیشه)

Laravel به طور پیش فرض از bcrypt به رمزهای عبور هش استفاده می کند.

هنگام ثبت نام کاربر ، این کار را به صورت خودکار انجام می دهد:

use Illuminate\Support\Facades\Hash;

$user = User::create([
    'name' => $request->name,
    'email' => $request->email,
    'password' => Hash::make($request->password),
]);
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

✅ هرگز رمزهای عبور را مستقیماً ذخیره نکنید.
✅ از هشویی منسوخ مانند MD5 یا SHA1 استفاده نکنید.


مرحله 3: تأیید ایمیل را فعال کنید

خارج از جعبه ، لاراول از تأیید ایمیل پشتیبانی می کند.

برای فعال کردن آن:

  1. اضافه کردن MustVerifyEmail به مدل کاربر خود:
use Illuminate\Contracts\Auth\MustVerifyEmail;

class User extends Authenticatable implements MustVerifyEmail
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

  1. اضافه کردن verified واسطه به مسیرها:
Route::middleware(['auth', 'verified'])->group(function () {
    // Protected routes here
});
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

چرا مهم است: از ثبت نام های جعلی و رباتها جلوگیری کنید.
اطلاعات بیشتر در مورد تأیید ایمیل: اسناد Laravel


مرحله 4: محافظت از CSRF-داخلی است ، از آن استفاده کنید

Laravel شامل محافظت CSRF به طور خودکار در فرم ها است. هر فرم باید داشته باشد:


حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

✅ از مهاجمان از جعل درخواست ها به نمایندگی از کاربران جلوگیری می کند.


مرحله 5: محدود کردن نرخ تلاش برای ورود به سیستم

Laravel از Middleware دریچه گاز برای جلوگیری از تلاش های ورود به سیستم بی رحمانه استفاده می کند.

مسیر مثال:

Route::post('/login', [LoginController::class, 'login'])->middleware('throttle:5,1');
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

این اجازه می دهد 5 تلاش در دقیقهبشر

به یک راه حل پیشرفته تر نیاز دارید؟ برای امنیت مدرن از Laravel Stortify استفاده کنید.


مرحله 6: احراز هویت دو عاملی (2FA)

یک لایه امنیتی اضافی با 2FA اضافه کنید.

اگر از JetStream یا Fortify استفاده می کنید ، 2FA در حال حاضر در دسترس است:

php artisan vendor:publish --tag=fortify-config
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

سپس فعال کنید:

'features' => [
    Features::twoFactorAuthentication([
        'confirmPassword' => true,
    ]),
],
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

✅ از برنامه های معتبر مانند Google Authenticator استفاده کنید.
✅ حتی اگر رمز ورود آنها به بیرون درز باشد ، از کاربران محافظت می کند.


مرحله 7: از HTTPS و کوکی های ایمن استفاده کنید

همیشه برنامه Laravel خود را از طریق HTTPS سرو کنید. در شما .env:

SESSION_SECURE_COOKIE=true
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

همچنین https را در خود مجبور کنید AppServiceProvider:

use Illuminate\Support\Facades\URL;

public function boot()
{
    if(env('APP_ENV') !== 'local') {
        URL::forceScheme('https');
    }
}
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

✅ ارتباط بین مشتری و سرور را رمزگذاری می کند.


مرحله 8: جلسات غیرفعال را وارد کنید

در config/session.php:

'lifetime' => 30, // 30 minutes
'expire_on_close' => true,
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

✅ از فعال شدن جلسات ربوده شده جلوگیری می کند.


جایزه: بسته های امنیتی توصیه شده

در اینجا چند بسته و منابع برای رسیدن امنیت لاراول به سطح بعدی آورده شده است:


افکار نهایی

احراز هویت برنامه خود را فقط “تنظیم و فراموش نکنید”.
این مهمترین دروازه بان برنامه شما است.

ایمن شروع کنید. ایمن بمانید و با انجام این کار درست از روز اول ، اعتماد کاربر را کسب کنید.

👇 سؤالاتی دارید یا می خواهید چگونه به اشتراک بگذارید شما برنامه های Laravel خود را ایمن کنید؟
یک نظر را رها کنید – من به همه پاسخ می دهم!

دنبال کردن [DCT Technology] برای راهنماهای عمیق تر در مورد مشاوره Laravel ، Web Dev ، SEO و IT.


#laravel #php #websecurance #devcommunity #laraveltips #webdevelopment #cybersecurance #api #2fa #sanctum #authentication #securecoding #DctTechnology #Laravelauth #TechInsights #WebAppSecurity

نوشته های مشابه

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

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

دکمه بازگشت به بالا