انتقل إلى المحتوى
Miraat·dweb developer journey, reflected

المصادقة: الجلسات وbcrypt

تسجيل دخول بالبريد وكلمة المرور بشكل سليم: التجزئة، الجلسات، تسجيل الخروج، الحماية من القوة الغاشمة.

Core 30 دقيقة المتطلبات السابقة: التوجيه (Routing) وMVC

تجزئة كلمة المرور

// التسجيل
$hash = password_hash($passwordInput, PASSWORD_BCRYPT, ["cost" => 12]);
// الدخول
if (password_verify($passwordInput, $userHash)) { /* ok */ }

الجلسة

بعد الدخول، تحفظ user_id في الجلسة على الخادم. العميل يأخذ كوكي بمعرّف الجلسة، لا البيانات.

ما لا يجب فعله

  • حفظ كلمات المرور كنصّ أو بـMD5/SHA1.
  • إبقاء الجلسة حيّة إلى ما لا نهاية.
  • إظهار رسائل مثل «البريد غير موجود» (تكشف الحسابات الصحيحة).

ما يجب فعله

  • Bcrypt أو Argon2id بكلفة لا تقلّ عن 12.
  • كوكيز httponly وsecure وsamesite=lax.
  • تحديد معدّل المحاولات.

مصادر مقترحة