ليه موقعك بيتهكر؟ 8 ثغرات بنلاقيها في كل مشروع تقريباً

ليه موقعك بيتهكر؟ 8 ثغرات بنلاقيها في كل مشروع تقريباً

لما عميل بيجي لنا بعد اختراق، الصورة بتبقى متكررة: مش هاكر عبقري اخترق حاجة محصنة. غالباً سكريبت آلي بيمسح الإنترنت لقى باب مفتوح معروف. خليني أعدّ لك الأبواب دي.

1. نسخة قديمة من ووردبريس أو إضافاته

ده السبب الأول بفارق كبير. إضافة مش متحدّثة من سنة فيها ثغرة منشورة علناً — والسكريبتات بتدوّر عليها تحديداً. لو موقعك ووردبريس ومش بيتحدّث شهرياً، هو مش «شغال» — هو مستني دوره.

الحل: تحديثات دورية، شيل أي إضافة مش مستخدمة (الإضافة المعطّلة لسه ثغرة)، وماتستخدمش إضافات مقرصنة أبداً — كتير منها بيجي بباب خلفي مزروع.

2. حقن SQL

لما الكود بياخد اللي المستخدم كتبه ويحطّه في استعلام قاعدة البيانات مباشرة. المهاجم بيكتب في خانة البحث حاجة بتخلي الاستعلام يرجّع كل جدول المستخدمين بكلمات السر.

الحل: استعلامات مجهّزة (prepared statements) دايماً. أي إطار عمل حديث — Laravel، Django، Rails — بيعمل ده افتراضياً لو استخدمته صح. الثغرة بتظهر لما حد يكتب استعلام يدوي «عشان أسرع».

3. رفع ملفات من غير فحص

خانة «ارفع صورتك الشخصية» اللي بتقبل أي ملف. المهاجم بيرفع ملف PHP بدل الصورة، وبعدين بيفتحه من المتصفح — وخلاص عنده تحكم في السيرفر.

الحل: تحقق من نوع الملف الفعلي مش من امتداده، خزّن المرفوعات بره مجلد الموقع أو في خدمة تخزين منفصلة، ومنع التنفيذ في مجلد الرفع.

4. كلمات سر ضعيفة ومن غير تحقق ثنائي

لوحة تحكم على مسار معروف + كلمة سر «admin123» = مسألة وقت. والسكريبتات بتجرّب آلاف المحاولات في الدقيقة.

الحل: تحديد عدد محاولات الدخول، تحقق ثنائي للحسابات الإدارية، وكلمات سر مخزّنة مُعمّاة بـbcrypt أو argon2 — مش مشفّرة ولا بـMD5.

5. الصلاحيات المكسورة

ده أكتر واحد بنلاقيه في الأنظمة المخصصة. الرابط `/invoice/1052` بيعرض فاتورة. المستخدم بيغيّر الرقم لـ1053 ويشوف فاتورة عميل تاني. النظام تحقق إنك مسجّل دخول، بس نسي يتحقق إن الفاتورة دي بتاعتك.

الحل: كل استعلام يجيب بيانات لازم يتفلتر بهوية المستخدم، مش بس يتحقق من تسجيل الدخول.

6. أسرار مكتوبة في الكود

مفاتيح API وكلمات سر قاعدة البيانات مكتوبة جوه الملفات، والمشروع مرفوع على GitHub. فيه بوتات شغلتها الوحيدة مسح المستودعات العامة بتدوّر على المفاتيح دي.

الحل: كل الأسرار في متغيرات بيئة خارج الكود، وملف البيئة مستبعد من git من أول يوم.

7. رسائل خطأ بتحكي كل حاجة

صفحة خطأ بتعرض مسار الملف ونسخة الإطار واستعلام قاعدة البيانات. ده بيدّي المهاجم خريطة كاملة لنظامك.

الحل: في بيئة الإنتاج: رسالة عامة للمستخدم والتفاصيل في سجل داخلي.

8. مافيش نسخ احتياطي مُختبر

مش ثغرة بالظبط، بس هي الفرق بين «يوم وحش» و«كارثة». وأسوأ حاجة نسخة احتياطية موجودة لكن محدش جرّب يستعيدها، وساعة الجد تطلع ناقصة أو تالفة.

الحل: نسخ تلقائي يومي، محفوظ في مكان منفصل عن السيرفر، ومُختبر باستعادة فعلية كل فترة.

الخلاصة

الأمان مش منتج بتشتريه مرة، هو عادة. التحديثات، الصلاحيات الصح، الأسرار بره الكود، والنسخ الاحتياطي المختبر بيغطّوا أغلب المخاطر الواقعية. لو مش متأكد من حالة موقعك دلوقتي، إحنا بنعمل فحص أمني بنطلع منه بتقرير بالثغرات مرتّبة حسب الخطورة.

مقالات أخرى

نظام ERP مخصص: التكلفة الحقيقية ومدة التنفيذ بصراحة ←Native ولا Flutter؟ اختيار تقنية تطبيقك من غير ندم ←كراسة المواصفات: الورقة اللي بتفرق بين مشروع ناجح ومشروع بيتأخر سنة ←

عندك فكرة مشروع؟ خلّينا نحوّلها إلى كود يشتغل.