حقن SQL، حين تصبح البيانات شيفرة
فكرة جديدة
هل يمكن لكتابة نص أن تخترق موقعًا؟
بعض المواقع المهملة هُزمت بكتابة ' OR '1'='1 في مربع تسجيل الدخول بدل الاسم. بلا أدوات اختراق، بضع علامات اقتباس لا أكثر. كيف يفعل نص عادي ذلك؟
تحفظ المواقع المستخدمين في قاعدة بيانات (database) وتسألها بلغة اسمها SQL. ويبدو السؤال (ويسمى استعلامًا (query)) هكذا: SELECT * FROM users WHERE name = 'sam'. ومعناه: أعطني كل مستخدم اسمه sam.
النص بين علامتي الاقتباس 'sam' هو بيانات. وكل ما عداه شيفرة (code) تنفّذها قاعدة البيانات. والبرنامج المهمل يبني الاستعلام بلصق ما تكتبه في منتصفه.