حقن SQL

مؤلف: Peter Berry
تاريخ الخلق: 13 أغسطس 2021
تاريخ التحديث: 22 يونيو 2024
Anonim
ثغرة SQL INJECTION  بشكل تطبيقي سهل ومبسط -- شرح أكاديمي --
فيديو: ثغرة SQL INJECTION بشكل تطبيقي سهل ومبسط -- شرح أكاديمي --

المحتوى

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

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


مقدمة إلى Microsoft Azure و Microsoft Cloud | من خلال هذا الدليل ، سوف تتعرف على الحوسبة السحابية التي تدور حولها وكيف يمكن أن يساعدك Microsoft Azure على ترحيل عملك وإدارته من السحابة.

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 عن طريق ضمان تصميم التطبيق المناسب ، وخاصة في الوحدات التي تتطلب إدخال المستخدم لتشغيل استعلامات أو أوامر قاعدة البيانات. في المثال أعلاه ، يمكن تغيير التطبيق بحيث يقبل قيمة رقمية واحدة فقط.