ثغرة SQL injection تعتبر من أقدم الثغرات وأكثرها خطورة، بل وما زالت تتصدر قائمة الثغرات التي يتم اكتشافها بناء على OWASP Top 10.
السبب الرئيسي لوجود هذه الثغرة هو كتابة كود غير آمن من قبل المطورين.
هل موقعك من هذه الثغرة ؟
اتبع هذه الخطوات -راح يكون موقعك آمن منها -بإذن الله-
السبب الرئيسي لوجود هذه الثغرة هو كتابة كود غير آمن من قبل المطورين.
هل موقعك من هذه الثغرة ؟
اتبع هذه الخطوات -راح يكون موقعك آمن منها -بإذن الله-
١- دائماً تحقق من المدخلات الخارجية, واسمح فقط بالمحتوى اللي تتوقعه انه يوصلك سواء في نوعه أو حجمه أو حتى محتواه.
مثال: اذا كان فيه خانة تطلب رقم الهوية، في هذه الحالة لا تسمح إلا بالأرقام وتكون ١٠ خانات ويتم رفض أي نوع آخر من المدخلات، وهكذا.
مثال: اذا كان فيه خانة تطلب رقم الهوية، في هذه الحالة لا تسمح إلا بالأرقام وتكون ١٠ خانات ويتم رفض أي نوع آخر من المدخلات، وهكذا.
٢- قم ببناء أكثر من طبقة تحقق. مثل التحقق من البيانات القادمة من قواعد البيانات، وتكلمت عنها بالتفصيل في الثريد الخاص بها. وفي حالتنا هذه راح تفيد في الحماية من ثغرة Second Order SQL Injection
٥- استخدم stored procedures:وهذه عبارة عن كود SQL يتم حفظه في قواعد البيانات، ويستخدم لتسهيل العمل، فيتم استدعاؤها بدل ما كتابتها من جديد. مع التنبيه لنقطة،أنه في حال كانت dynamic query أي أنها تحتوي على parameter من المستخدم ففي هذه الحالة يجب بنائها بشكل آمن في قواعد البيانات
٦- استخدم ORM (Object Relational Mapper). وهذه عبارة عن خاصية توفرها أغلب الأطر الخاصة ببناء تطبيقات الويب تختصر عليك بناء SQL query من الصفر ، وتسهل حياتك كمطور ، وتقلل من خطر sql injection. مع التذكير بخصوص التأكد أنه ما يوجد ثغرة معروفة للنسخة اللي تستخدمها
٧- دائماً تجنب عمل concatenation عند بناء ال SQL query. فهي من أبرز الممارسات السيئة التي ممكن تؤدي لثغرة SQL injection.
هل موقعك آمن *
جاري تحميل الاقتراحات...