تخطي مشاكل حقن قواعد البيانات – القسم الأول
حقن قواعد البيانات أو مايسمئ sql injection هو في الغالب الشغل الشاغل لمبرمجي المواقع الديناميكية التفاعيله , إن كنت مبرمج في بدايه طريقك لك مني مايسعدك.
سيتم تقسيم الموضوع الى قسمين القسم الاول ماهو SQL INJECTION والقسم الثاني كيفية حماية قاعدة البيانات منه
على بركه الله نبداء القسم الاول , وهو مقدمه عامه وليس معني بأي لغه برمجية
تخيل غزيزي أنك تملك قاعدة بيانات بها جدول للمستخدمين وأردت إنشاء شاشه لتسجيل الدخول للتأكد من صلاحية المستخدم للدخول , مايهمنا هو عبارة SQL التي ستكون بالتأكيد
لنفرض ان ADMIN هو أسم المستخدم القادم من نافذة تسجيل الدخول , إن كانت صحيحه فسيرجع لنا صف من الجدول , وإن لم تكن صحيحه فلن يرجع شيئ , هنا نفرض ان شخص وضع التعليمه التاليه مكان كلمة المرور
A’ OR ‘A’=’A
ماذا تعني هذه التعليمه ؟
إن لغه SQL منطقيه في شروطها مثلها مثل لغات البرمحه ففي عبارة الاستعلام السابقه طلبنا من قاعدة البيانات ان ترجع لنا بيانات المستخدم الذي له الأسم وكلمة المرور الذي ادخلناها , لكن بعد ادخال التعليمه التاليه سيصبح الاستعلام هكذا
هنا اصبحت عبارة الاستعلام مكونه من قسمين القسم الاول تطابق كلمة المرور مع اسم المستخدم والقسم الثاني وهو المهم أن A =A وهذا صحيح بالتأكيد لذلك سيكون ناتج الاستعلام كما في الصورة .
لاحظ أن القيمة الراجعه من الاستعلام هي جميع صفوف الجدول , هذا بالتأكيد لايعجبك , لكن تخيل أن الهاكرز عرف بثغرتك هذه وأحب استغلالها بطريقه تنهي موقعك وادخل التعليمه التاليه في حقل كلمة المرور
واصبحت عبارة SQL الخاصه بك والتي ستنفذ على قاعدة البيانات كما في الصورة
لاحظ اننا نفذنا العبارة ولم ترجع لنا أي صف من ناتج الاستعلام في القسم الاول منه لكن لنشاهد جدول الاستخدام
لاحظ أن جميع البيانات في الحقل الرابع (حقل الاسم) قد تأثرت بناتج استعلام تسجيل الدخول , هنا يكمن الخطر في حقن قواعد البيانات فمثلاً بستطاعه اي شخص حذف قاعدة البيانات بسهولة بأستخدام التعليمة
DROP DATABASE DATABASENAME
إلى هنا انتهئ القسم الاول .. لنا لقاء في القسم الثاني.
تم نشر القسم الثاني من الموضوع على الرابط
إرسال التعليق