- ضعف التحقق من الصلاحية أشيع ثغرة وأخطرها في تطبيقات الأعمال.
- كل مدخل يتحقق منه في الخادم مهما تحققت في الواجهة.
- الإعدادات الافتراضية للإنتاج مصدر تسريب متكرر.
- الأمان يبدأ في التصميم لا في فحص ما قبل الإطلاق.
ضعف التحقق من الصلاحية
المستخدم مسجل دخول، فهل يحق له رؤية هذا السجل تحديدا؟ كثير من التطبيقات تتحقق من الدخول ولا تتحقق من الملكية. فيغير المستخدم رقما في الرابط ويرى فاتورة عميل آخر. وهذه أشيع ثغرة في تطبيقات الأعمال وأسهلها استغلالا.
والعلاج: كل استعلام يقيد بهوية المستخدم في مستوى البيانات لا في مستوى الواجهة، ويختبر ذلك اختبارا صريحا.
الحقن
- حقن قواعد البيانات — يمنع باستعمال استعلامات معاملية دائما لا بدمج النصوص.
- حقن الأوامر — لا تمرر مدخل المستخدم إلى أوامر النظام أبدا.
- حقن السكربتات في الصفحة — يمنع بترميز المخرج بحسب سياقه.
- حقن في الاستعلامات الموجهة للنماذج اللغوية — تهديد جديد يعالج بحدود واضحة وتحقق من المخرج.
الجلسات والمصادقة
- رموز جلسة عشوائية قوية، تجدد عند تسجيل الدخول لمنع تثبيت الجلسة.
- كعكات بخصائص أمنية كاملة: آمنة، ومحصورة بالخادم، ومقيدة الموقع.
- إبطال فوري للجلسات عند تغيير كلمة المرور أو الخروج.
- حد لمحاولات الدخول مع تأخير تصاعدي ومنع تعداد الحسابات في رسائل الخطأ.
رفع الملفات
الملف المرفوع مدخل غير موثوق: تحقق من نوعه بمحتواه لا بامتداده، وحدد حجما أقصى، وخزنه خارج مسار التنفيذ، وأعد تسميته باسم مولد، ولا تقدمه من النطاق نفسه إن أمكن. فالملف الذي ينفذ على خادمك اختراق كامل.
الإعدادات
رسائل الخطأ التفصيلية في الإنتاج، ولوحات الإدارة على المسار الافتراضي، ورؤوس الأمان الغائبة، وملفات النسخ الاحتياطي المتروكة في مجلد الموقع، والمكتبات القديمة — هذه أخطاء إعداد لا برمجة، وهي مصدر تسريبات كثيرة لا تحتاج مهارة لاستغلالها.
أسئلة شائعة
هل جدار حماية التطبيقات كاف؟
يوفر طبقة مفيدة ويصد هجمات آلية كثيرة، ولا يعالج منطق الصلاحية المعطوب لأنه لا يعرف من يحق له رؤية ماذا. فهو مكمل لا بديل عن الكود الآمن.
متى نفحص أمنيا؟
مراجعة أمنية في التصميم، وفحص آلي في خط البناء عند كل تغيير، واختبار بشري قبل الإطلاق ودوريا بعده. والفحص الوحيد قبل الإطلاق بأيام يكشف ما لا وقت لإصلاحه.
ما أسرع تحسين؟
مراجعة التحقق من الصلاحية في نقاط النهاية التي تقبل معرفا في الطلب. فهذه أشيع ثغرة وأخطرها، ومراجعتها لا تحتاج أدوات بل قراءة منظمة للكود واختبارا بحسابين مختلفين.
- أمن تطبيقات الويب
- الثغرات الشائعة
- حقن SQL
- التحقق من الصلاحية
- أمن الجلسات
- التطوير الآمن
- حماية المواقع
- الأمن السيبراني