انتقل إلى محتوى الدرس

Password Storage Security Checklist قائمة التحقق الأمنية لتخزين كلمات المرور

خزّن كلمات مرور المستخدمين بأمان تام في PHP 8 باستخدام password_hash وخوارزميات Bcrypt وArgon2id ودالة التحقق password_verify.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

التزم بقائمة التحقق الأمنية الشاملة لدورة حياة كلمات المرور في PHP 8.4 أثناء التسجيل والدخول وتصميم الجداول.

  • شفر كلمات المرور حصرياً عبر password_hash() باستخدام PASSWORD_DEFAULT أو PASSWORD_ARGON2ID.
  • تحقق من الدخول حصرياً عبر password_verify() ورقِّ التجزئات القديمة عبر password_needs_rehash().
  • افرض حداً أدنى لطول كلمة المرور (من 8 إلى 12 محرفاً) دون حذف الرموز الخاصة.

تجمع الدالة المساعدة بين التحقق الآمن والترقية التلقائية للتشفير في وحدة برمجية واحدة قابلة لإعادة الاستخدام.

الدالة / الثابتالوظيفة الأساسيةالاستخدام الموصى به
password_hash()Create salted adaptive hashRegistration & password change
password_verify()Timing-safe hash verificationEvery login authentication check
password_needs_rehash()Detect outdated cost or algorithmImmediately after successful login
PASSWORD_DEFAULTCurrent strongest default (Bcrypt 12)Standard portable PHP deployments
PASSWORD_ARGON2IDMemory-hard + CPU-hard hashingHigh-security PHP 8.4 servers

PHP
<?php
function verifyAndUpgrade(string $plain, string $hash): ?string {
    if (!password_verify($plain, $hash)) {
        return null;
    }
    if (password_needs_rehash($hash, PASSWORD_DEFAULT)) {
        return password_hash($plain, PASSWORD_DEFAULT);
    }
    return $hash;
}
echo (verifyAndUpgrade("Admin!234", password_hash("Admin!234", PASSWORD_DEFAULT)) !== null)
    ? "Verified OK\n" : "Rejected\n";
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

التزم بقائمة التحقق الأمنية الشاملة لدورة حياة كلمات المرور في PHP 8.4 أثناء التسجيل والدخول وتصميم الجداول. شفر كلمات المرور حصرياً عبر password_hash() باستخدام PASSWORD_DEFAULT أو PASSWORD_ARGON2ID. تحقق من الدخول حصرياً عبر password_verify() ورقِّ التجزئات القديمة عبر password_needs_rehash(). افرض حداً أدنى لطول كلمة المرور (من 8 إلى 12 محرفاً) دون حذف الرموز الخاصة.