محتويات الدليل
أطفئ عرض الأخطاء التفصيلي
تأكد أن display_errors مُطفأة في الإنتاج
افتح includes/config.php وتأكد أن أسطر display_errors بالأعلى معلَّقة (بين /* */) كما هي افتراضياً.
لماذا؟ رسالة خطأ PHP التفصيلية تكشف أحياناً مسارات ملفات داخلية أو حتى أجزاء من كود قاعدة البيانات — معلومات مفيدة لأي شخص يحاول اختراق الموقع. اترك عرض الأخطاء مفعّلاً فقط مؤقتاً أثناء التشخيص، ثم أطفئه فوراً.
حدّث النظام والـPHP بانتظام
جدول تحديث شهري بسيط
sudo apt update && sudo apt upgrade -y
أغلب الاختراقات لا تستهدف موقعك تحديداً، بل تبحث آلياً عن سيرفرات بإصدارات قديمة فيها ثغرات معروفة ومُصلَحة أصلاً. تحديث شهري بسيط يغلق هذا الباب بالكامل تقريباً.
امنع محاولات الدخول المتكررة
تثبيت Fail2Ban
sudo apt install fail2ban -y sudo systemctl enable fail2ban sudo systemctl start fail2ban
Fail2Ban يراقب محاولات الدخول الفاشلة المتكررة (سواء لـ SSH أو لصفحة تسجيل دخول الموقع) ويحظر عنوان IP تلقائياً بعد عدد معيّن من المحاولات الفاشلة خلال وقت قصير — يمنع هجمات "تخمين كلمة المرور" الآلية بشكل كبير.
قيّد أو احذف phpMyAdmin
إن ثبّتّه للمساعدة أثناء التثبيت فقط
إن لم تعد تحتاجه بعد الانتهاء من استيراد قاعدة البيانات، احذفه بالكامل:
sudo apt remove phpmyadmin -y
إن أردت الإبقاء عليه، قيّد الوصول له بعنوان IP جهازك فقط داخل إعدادات أباتشي (Require ip عنوان_IP_جهازك) بدل تركه مفتوحاً لأي شخص بالإنترنت.
افرض HTTPS دائماً
حوّل أي زيارة HTTP تلقائياً إلى HTTPS
إن كنت قد فعّلت SSL عبر Certbot (من دليل التثبيت)، تأكد أنه أضاف إعادة توجيه تلقائية. للتحقق، افتح الرابط بـ http:// صراحة من متصفحك — يجب أن يحوّلك تلقائياً لـ https://. إن لم يحدث، أعد تشغيل:
sudo certbot --apache -d workup.شركتك.com --redirect
كلمات مرور قوية وفريدة
راجع كل كلمات المرور المستخدمة
workup_user قوية وغير مستخدمة بأي مكان آخر.root الخاصة بـMySQL نفسها قوية أيضاً (وليست فارغة كما بالإعداد الافتراضي المحلي).