بيت الأمان ما هو حقن SQL؟ - تعريف من techopedia

ما هو حقن SQL؟ - تعريف من techopedia

جدول المحتويات:

Anonim

التعريف - ماذا يعني SQL Injection؟

حقن SQL عبارة عن هجوم بالكمبيوتر حيث يتم تضمين التعليمات البرمجية الضارة في تطبيق سيئ التصميم ثم يتم تمريرها إلى قاعدة البيانات الخلفية. ثم ينتج عن البيانات الضارة نتائج استعلام قاعدة البيانات أو الإجراءات التي لم يكن يجب تنفيذها.

Techopedia يشرح SQL Injection

دعنا نذهب من خلال مثال عن هجوم حقن SQL:


يحتوي التطبيق الذي يدير عمليات البنك على قوائم يمكن استخدامها للبحث عن تفاصيل العميل باستخدام نقاط بيانات مثل رقم الضمان الاجتماعي للعميل. في الخلفية ، يستدعي التطبيق استعلام SQL الذي يتم تشغيله في قاعدة البيانات عن طريق تمرير قيم البحث المدخلة كما يلي:


SELECT client_name ، رقم الهاتف ، العنوان ، date_of_birth WHERE social_sec_no = 23425


في هذا النموذج النصي ، يقوم المستخدم بإدخال القيمة 23425 في نافذة قائمة التطبيق ، حيث يطلب من المستخدم إدخال رقم الضمان الاجتماعي. ثم ، باستخدام القيمة التي يوفرها المستخدم ، يتم تشغيل استعلام SQL في قاعدة البيانات.


يمكن لمستخدم لديه معرفة SQL فهم التطبيق ، وبدلاً من إدخال قيمة واحدة عند طلب رقم الضمان الاجتماعي ، أدخل السلسلة "23425 أو 1 = 1" ، والتي يتم تمريرها إلى قاعدة البيانات على النحو التالي:


اختر اسم العميل ، رقم الهاتف ، العنوان ، date_of_birth WHERE social_sec_no = 23425 أو 1 = 1


جملة WHERE مهمة لأنها تقدم مشكلة عدم الحصانة. في قاعدة البيانات ، يكون الشرط 1 = 1 صحيحًا دائمًا ، ولأن الاستعلام قد تم تحديده لإرجاع تفاصيل رقم الضمان الاجتماعي للعميل (23425) أو WHERE 1 = 1 ، فسوف يعرض الاستعلام جميع الصفوف في الجدول ، والتي لم تكن القصد الأصلي.


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


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

ما هو حقن SQL؟ - تعريف من techopedia