التحقق من المدخلات (Validation)
لا تثق أبداً بمدخلات المستخدم
أهم قاعدة في أمن الويب هي أن بيانات المستخدم قد تكون خاطئة أو خبيثة. يجب دائماً تنظيف والتحقق من البيانات قبل استخدامها.
1. تنظيف النصوص (Sanitization)
نستخدم دالة htmlspecialchars() لتحويل الرموز الخاصة (مثل <) إلى نصوص عادية، مما يمنع هجمات XSS.
$name = htmlspecialchars($_POST['name']);
2. التحقق من الحقول الفارغة
نستخدم دالة empty() للتأكد من أن المستخدم قام بتعبئة الحقل.
<?php
if (empty($_POST["username"])) {
echo "خطأ: اسم المستخدم مطلوب!";
} else {
$user = htmlspecialchars($_POST["username"]);
}
?>
3. التحقق من نوع البيانات (Filters)
توفر PHP فلاتر جاهزة للتحقق من البريد الإلكتروني أو الأرقام:
<?php
$email = $_POST["email"];
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "البريد الإلكتروني غير صحيح!";
}
?>
نصيحة أمنية
التحقق في جهة العميل (بواسطة HTML required أو JavaScript) جيد للمستخدم، لكن التحقق في جهة الخادم (بواسطة PHP) هو الوحيد الذي يحمي موقعك فعلياً.