في هذه الوحدة، سنتناول أهم التقنيات لحماية قواعد البيانات ومنع الهجمات الإلكترونية التي تستهدفها، بالإضافة إلى إعدادات السيرفر التي تعزز الأمان.
📌 1. إعداد MySQL بشكل آمن ومنع SQL Injection
✅ لماذا يجب تأمين MySQL؟
- قواعد البيانات تحتوي على معلومات حساسة مثل بيانات المستخدمين والمحتوى، لذا فإن حمايتها ضرورية لتجنب التسريبات والهجمات.
- أحد أخطر الهجمات هو SQL Injection، حيث يستغل المهاجم ضعف الاستعلامات لتنفيذ أوامر ضارة داخل قاعدة البيانات.
✅ أفضل الممارسات لتأمين MySQL:
🔹 استخدام PDO مع Prepared Statements لمنع SQL Injection.
🔹 تفعيل STRICT MODE في MySQL لضمان قيود صارمة على إدخال البيانات.
🔹 ضبط أذونات المستخدمين في قاعدة البيانات (Least Privilege Principle).
💡 مثال عملي – منع SQL Injection باستخدام PDO:
php
$pdo = new PDO("mysql:host=localhost;dbname=mydb", "user", "password");
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email");
$stmt->bindParam(":email", $email);
$stmt->execute();
🔒 2. ضبط أذونات قواعد البيانات (Privileges & Access Control)
✅ لماذا يجب إدارة الأذونات؟
- تعيين أذونات مناسبة يحمي قاعدة البيانات من الوصول غير المصرح به.
- يجب أن يتمتع كل مستخدم بصلاحيات محدودة فقط بما يحتاج إليه.
✅ أفضل ممارسات إدارة الأذونات:
🔹 استخدام الأمر GRANT لتحديد الأذونات بدقة.
🔹 منع المستخدمين من تنفيذ أوامر DROP أو ALTER TABLE إذا لم يكن ضرورياً.
🔹 مراجعة الأذونات بشكل دوري باستخدام SHOW GRANTS.
💡 مثال – تقييد صلاحيات مستخدم قاعدة البيانات:
sql
GRANT SELECT, INSERT ON mydb.* TO 'user'@'localhost';
FLUSH PRIVILEGES;
🛡 3. تهيئة السيرفر باستخدام ModSecurity و WAF و Fail2Ban
✅ لماذا تأمين السيرفر مهم؟
- السيرفر هو النقطة المركزية لتشغيل التطبيق، لذا يجب تأمينه ضد الهجمات مثل Brute Force وDDoS.
- يمكن استخدام أدوات مثل ModSecurity وWAF لفلترة الطلبات الضارة.
✅ أفضل الطرق لحماية السيرفر:
🔹 ModSecurity
جدار حماية للتطبيقات يمنع الهجمات مثل SQL Injection وXSS.
🔹WAF (Web Application Firewall)
تصفية حركة المرور لمنع الطلبات الضارة.
🔹 Fail2Ban
يحظر محاولات تسجيل الدخول المتكررة لمنع Brute Force attacks.
💡 مثال
– تمكين ModSecurity في Apache:
apache
SecRuleEngine On
Include /etc/modsecurity/*.conf
📂 4. الحد من مخاطر رفع الملفات (File Upload Security)
✅ لماذا يعد رفع الملفات خطرًا؟
- بعض التطبيقات تسمح برفع الملفات، لكن إذا لم يتم فلترة الملفات، يمكن للمهاجم رفع ملف ضار وتنفيذه على السيرفر!
✅ طرق تأمين رفع الملفات:
🔹 السماح فقط بصيغ الملفات الموثوقة (مثل .jpg, .png, .pdf
).
🔹 تحديد حد أقصى لحجم الملفات المرفوعة.
🔹 فحص الملفات باستخدام Antivirus Scanner قبل قبولها.
💡 مثال – تأمين رفع الملفات في PHP:
php
$allowed_types = ['image/jpeg', 'image/png', 'application/pdf'];
if (in_array($_FILES['file']['type'], $allowed_types)) {
move_uploaded_file($_FILES['file']['tmp_name'], "uploads/" . basename($_FILES['file']['name']));
} else {
echo "صيغة الملف غير مسموح بها!";
}
🎯 ما الخطوة التالية؟
🔥 هل تحتاج إلى إضافة تمارين عملية لهذه الوحدة؟
إنتقل الى الوحدة التالية المزيد من التعمق في عالم الحماية