تجزئة كلمة المرور
// التسجيل
$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. - تحديد معدّل المحاولات.