📚 محتوى تعليمي دفاعي للمطوّرين.
القاعدة الأولى
⚠️ لا تخزّن كلمات المرور كنصّ صريح أبدًا. خزّن بصمتها (hash) فقط.
التجزئة بدل التخزين
عند التسجيل، خزّن hash كلمة المرور. عند الدخول، جزّئ المُدخَل وقارن البصمتين.
import bcrypt from "bcrypt";
// التسجيل
const hash = await bcrypt.hash(password, 12); // خزّن hash
// الدخول
const ok = await bcrypt.compare(input, hash); // قارن
الملح (Salt)
قيمة عشوائية تُضاف لكل كلمة قبل التجزئة، فتمنع جداول التخمين المسبقة (rainbow tables). bcrypt يضيف الـ salt تلقائيًّا.
لماذا bcrypt/argon2 لا SHA؟
خوارزميات كلمات المرور بطيئة عمدًا لتصعّب التخمين بالقوّة الغاشمة. SHA-256 سريع جدًّا (مناسب للسلامة لا لكلمات المرور).
سياسات جيّدة
- شجّع كلمات مرور طويلة (عبارات مرور).
- فعّل المصادقة الثنائية (2FA).
- افحص ضدّ قوائم الكلمات المسرّبة.
- حدّد محاولات الدخول (rate limiting).
💡 للمستخدمين: استخدم مدير كلمات مرور وكلمة فريدة لكل موقع.
🎯 التالي: المصادقة والتحقّق المتعدّد.