شرح صفوف ومحتوى الفقرة
راجع خطوات الأمان الست المتسلسلة اللازمة لبناء نقطة نهاية تسجيل مستخدمين جاهزة للإنتاج.
- تحقق من توكن CSRF عبر
hash_equals()قبل قراءة حقول النموذج. - وحّد صيغة البريد وتحقق من صحة الحقول وطول كلمة المرور.
- جزّئ كلمة المرور بـ
password_hash()، وأدرجها باستعلام PDO محضر، وحوّل المسار بنمط PRG.
تنفيذ هذه الخطوات الخمس بالترتيب يحمي من ثغرات CSRF وحقن SQL وتسرب كلمات المرور وتكرار الإرسال.
| مرحلة التسجيل | الأداة / الدالة في PHP | التهديد الأمني الذي تمنعه |
|---|---|---|
| CSRF Check | hash_equals($_SESSION["csrf"], $token) | Cross-Site Request Forgery |
| Email Normalization | strtolower(trim($email)) + FILTER_VALIDATE_EMAIL | Duplicate case variants & malformed emails |
| Password Hashing | password_hash($pass, PASSWORD_DEFAULT) | Plaintext & rainbow-table password leaks |
| PDO Prepared Insert | $pdo->prepare("INSERT INTO users ...") | SQL Injection (SQLi) |
| PRG Redirect | header("Location: /dashboard", true, 303) | Duplicate POST form resubmission |
PHP
<?php
$steps = [
1 => 'Verify CSRF token (hash_equals)',
2 => 'Validate & normalize inputs',
3 => 'Check PDO email uniqueness',
4 => 'Hash password & INSERT row',
5 => 'Set flash & 303 Redirect (PRG)',
];
foreach ($steps as $n => $label) {
echo "Step $n: $label\n";
}
خلاصة المعرفة ومحطة الانتقال
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
راجع خطوات الأمان الست المتسلسلة اللازمة لبناء نقطة نهاية تسجيل مستخدمين جاهزة للإنتاج. تحقق من توكن CSRF عبر hash_equals() قبل قراءة حقول النموذج. وحّد صيغة البريد وتحقق من صحة الحقول وطول كلمة المرور. جزّئ كلمة المرور بـ password_hash()، وأدرجها باستعلام PDO محضر، وحوّل المسار بنمط PRG.