أمان المواقع: الحد الأدنى الذي لا يُتنازل عنه

معظم الاختراقات تستغل أخطاء أساسية لا ثغرات معقّدة. قائمة عملية بما يجب أن يكون في موقعك قبل الإطلاق.

2 minmahdi digitalx

الاختراق نادراً ما يكون عملية معقّدة. في الغالب هو استغلال آلي لخطأ بسيط ومعروف. هذه القائمة تغلق أغلب هذه الأبواب.

1. HTTPS على كل صفحة

ليس على صفحة الدخول فقط بل على الموقع كله، مع إعادة توجيه إجبارية من HTTP. بدونه تنتقل بيانات زوارك بلا تشفير، ويعرض المتصفح تحذيراً يهدم الثقة.

2. كلمات المرور كبصمات لا كنصوص

لا تُخزَّن كلمة المرور أبداً كنص صريح. تُخزَّن كبصمة (hash) بخوارزمية بطيئة مصمّمة لذلك مثل PBKDF2 أو bcrypt أو Argon2، مع ملح عشوائي لكل مستخدم.

إن استطاع أحد أن يخبرك بكلمة مرورك عند نسيانها، فالنظام مبني خطأً.

3. تعقيم كل المدخلات

كل ما يأتي من المستخدم غير موثوق حتى يُثبت العكس:

الهجوم الحماية
حقن SQL استعلامات مُعامَلة (Parameterized) دائماً
XSS تهريب المخرجات قبل العرض
روابط خبيثة السماح بـ http/https فقط
رفع ملفات ضارة تقييد النوع والحجم

4. ترويسات الأمان

مجموعة من الترويسات ترفع مستوى الحماية بلا تكلفة تُذكر:

  • Content-Security-Policy — تحدّد مصادر السكربتات المسموحة
  • X-Frame-Options — يمنع تضمين موقعك في إطار (منع النقر الخادع)
  • X-Content-Type-Options: nosniff — يمنع تخمين نوع المحتوى
  • Strict-Transport-Security — يفرض HTTPS
  • Referrer-Policy — يحدّ تسريب معلومات التنقّل

5. تحديد معدل المحاولات

بلا حدّ للمحاولات، يستطيع برنامج آلي تجربة آلاف كلمات المرور. حدّد عدد محاولات الدخول وإرسال النماذج لكل عنوان في فترة زمنية.

6. حماية النماذج من البوتات

  • حقل مخفي (فخ) يملؤه البوت ولا يراه الإنسان
  • تحديد معدل الإرسال
  • تحقّق من طول المدخلات ونوعها

7. التحديثات المستمرة

معظم الاختراقات تستغل ثغرات معروفة ومصلَحة في مكتبات لم تُحدَّث. راجع تبعيات مشروعك دورياً.

8. نسخ احتياطية قابلة للاستعادة

النسخة الاحتياطية التي لم تُختبر استعادتها ليست نسخة احتياطية. جرّب الاستعادة فعلياً مرة على الأقل.

9. مبدأ أقل صلاحية

لا تمنح أي حساب أو خدمة صلاحيات أكثر مما تحتاج لأداء مهمتها.

10. لا أسرار في الكود

مفاتيح API وكلمات المرور تُحفظ في متغيّرات بيئة أو خزائن أسرار — لا داخل الكود ولا في مستودع Git.

قائمة فحص قبل الإطلاق

  • [x] HTTPS مفعّل وإجباري
  • [x] كلمات المرور مخزّنة كبصمات
  • [x] كل الاستعلامات مُعامَلة
  • [x] ترويسات الأمان مضبوطة
  • [x] تحديد معدل على الدخول والنماذج
  • [x] لا أسرار في المستودع
  • [x] نسخة احتياطية مُختبَرة

الخلاصة

الأمان ليس ميزة تُضاف بل أساس يُبنى عليه. هذه القائمة تغلق أغلب الأبواب التي تستغلها الهجمات الآلية، وتنفيذها لا يكلّف كثيراً مقارنة بكلفة اختراق واحد.