تخطي مشاكل حقن قواعد البيانات – القسم الأول

حقن قواعد البيانات أو مايسمئ  sql injection هو في الغالب الشغل الشاغل لمبرمجي المواقع الديناميكية التفاعيله , إن كنت مبرمج في بدايه طريقك لك مني مايسعدك.

سيتم تقسيم الموضوع الى قسمين القسم الاول ماهو SQL INJECTION  والقسم الثاني كيفية حماية قاعدة البيانات منه

على بركه الله نبداء القسم الاول , وهو مقدمه عامه وليس معني بأي لغه برمجية

 

تخيل غزيزي أنك تملك قاعدة بيانات بها جدول للمستخدمين وأردت إنشاء شاشه لتسجيل الدخول للتأكد من صلاحية المستخدم للدخول , مايهمنا هو عبارة SQL التي ستكون بالتأكيد

1

لنفرض ان ADMIN هو أسم المستخدم القادم من نافذة تسجيل الدخول , إن كانت صحيحه فسيرجع لنا صف من الجدول , وإن لم تكن صحيحه فلن يرجع شيئ , هنا نفرض ان شخص وضع التعليمه التاليه مكان كلمة المرور

A’ OR ‘A’=’A

ماذا تعني هذه التعليمه  ؟

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

2

 

هنا اصبحت عبارة الاستعلام مكونه من قسمين القسم الاول تطابق كلمة المرور مع اسم المستخدم والقسم الثاني وهو المهم أن A =A  وهذا صحيح بالتأكيد لذلك سيكون ناتج الاستعلام كما في الصورة .

3

لاحظ أن القيمة الراجعه من الاستعلام هي جميع صفوف الجدول , هذا بالتأكيد لايعجبك , لكن  تخيل أن الهاكرز عرف بثغرتك هذه وأحب استغلالها بطريقه تنهي موقعك وادخل التعليمه التاليه في حقل كلمة المرور

4

 

واصبحت عبارة SQL الخاصه بك والتي ستنفذ على قاعدة البيانات كما في الصورة

5

لاحظ اننا نفذنا العبارة ولم ترجع لنا أي صف من ناتج الاستعلام في القسم الاول منه لكن لنشاهد جدول الاستخدام

6

لاحظ أن جميع البيانات في الحقل الرابع (حقل الاسم) قد تأثرت بناتج استعلام تسجيل الدخول , هنا يكمن الخطر في حقن قواعد البيانات فمثلاً بستطاعه اي شخص حذف قاعدة البيانات بسهولة بأستخدام التعليمة

DROP DATABASE DATABASENAME

إلى هنا انتهئ القسم الاول .. لنا لقاء في القسم الثاني.

تم نشر القسم الثاني من الموضوع على الرابط

تخطي مشاكل حقن قواعد البيانات الجزء الثاني .

 

 

 

إرسال التعليق