التخطي إلى المحتوى الرئيسي

كيف تضع المتغيرات في جملة SQL داخل البرنامج؟

من الأخطاء التي تبدو لي شائعة هي كيفية تكوين جمل SQL داخل البرامج، أصادف سطورا يكتبها بعض المبرمجين كالتالي:

"select * from users where UPPER(uname)= UPPER('".$uname."')"

هذه الطريقة في ادخال القيم إلى جملة SQL هي طريقة خطرة للغاية، فهي أولا تعيق عمل البرنامج عند ادخال أحرف معينة (أحد من عرفتهم حل المشكلة باخبار المستخدم بأن ادخال هذه الحروف ممنوع!)، وثانيا، وهو الأهم: أنها تترك قاعدة بياناتك عرضة للاختراق، أو التدمير، إذ يمكن للمخترق، وبمجرد اكتشافه للثغرة أن يقوم باغلاق جملة SQL الخاصة بك واضافة جملة جديدة كما يشاء، افترض مثلا أن قيمة المتغير uname (المدخلة بواسطة المستخدم) كالتالي:
');DROP TABLE users; --
في تلك الحالة تصبح جملة SQL الكاملة المنفذة بواسطة البرنامج هي:
"select * from users where UPPER(uname)= UPPER('');DROP TABLE users; --')"
وبالطبع، تكون النتيجة هي محو بيانات المستخدمين "إن كان البرنامج يملك صلاحية تنفيذ الأمر".
تسمى هذه الطريقة SQL Injection وهي دائما فعالة مع البرامج المكتوبة بهذه الطريقة، فكتابة الكود بهذه الطريقة يقلل فعاليته ويخلق ثغرات أمنية خطرة.

والطريقة الصحيحة لادخال المتغيرات في جملة SQL بأمان، هي استخدام escaping functions، أو اضافة الحرف '\' قبل الأحرف الخاصة في نفس المتغير قبل ادخاله في الجملة.

مثال يمكن مراجعته عن تلك الدوال في php:
mysqli.real-escape-string.php
بيئة .NET:
system.data.sqlclient.sqlcommand.parameters.aspx

تعليقات

المشاركات الشائعة من هذه المدونة

جدران النار - خطوط الدفاع

جدران النار Firewalls هي واحدة من أهم مواردك للدفاع عن الشبكة، هي الحراسة الخاصة على بوابتك للإنترنت. تأتي جدران النار بصور وأشكال مختلفة، فمن حيث طبيعتها، قد تكون أجهزة متخصصة appliances، أو برامج مختصة ، تماماً كمضاد الفيروسات. لكل من هذين النوعين مميزاته وعيوبه، فالأجهزة المختصة يمكنها أن تفرض القواعد العامة على مؤسسة كاملة مبقية التحكم في أيدي مديري الشبكة، كذلك تكون هذه الأجهزة محسنة لتقوم فقط بفلترة حزم البيانات الداخلة إلى الشبكة مما يقلل من امكانية تعطيلها بسبب ثغرات مختلفة بواسطة المخترقين، كما هناك في كثير منها، العديد من التقنيات الذكية الأحدث التي تتبنى تقنيات تعلم الآلة لتتمكن من ملاحظة أي سلوك غير مألوف (أو عدواني، ربما) على الشبكة الخاصة بك، والاستجابة الفورية.. كذلك، فهي قادرة إلى حد بعيد على حماية الأجهزة الذكية وانترنت الأشياء من عبث المخترقين، ربما لا تستطيع وضع برنامج جدار ناري على تلفزيونك الذكي وكاميرا المراقبة الأبوية في منزلك، لكنك تستطيع حماية بيئتك المنزلية من خلال جدار ناري على مصدر الانترنت. أما البرامج فهي في الغالب تستخدم لحماية جهاز بعينه، أو نقطة واحدة ...

فعالية Advent of Cyber

خبر سعيد لمن يود دخول مجال أمن المعلومات.. تطلق منصة Try Hack Me فعالية جديدة ترعاها شركات كبرى في مجال تدريب المخترقين الأخلاقيين، الفعالية تبدأ أونلاين ابتداء من الأول من ديسمبر (كانون الأول) وصولاً للخامس والعشرين من نفس الشهر، وهي تعتمد نفس الأسلوب المتبع على منصة Try Hack Me، باعتماد المعامل  والتطبيق العملي للمهارات  أولا بأول، ستفتتح يومياً عدد من المعامل المرفقة بأسئلة على طريقة CTF المعتمدة في المسابقات، ومع نهاية الفعالية تحصل على شهادة من Try Hack Me، كما سيجري سحب على جوائز قيمة، وكلما اجتزت تحديات أكثر، كلما زادت فرصتك في الفوز.. الجزء الأفضل؟.. تكاليف التسجيل هي 0$ ، الفعالية مجانية بالكامل، فقط أنشئ حساب على موقع TryHackMe، ثم سجل في الغرفة المرفق رابطها أعلاه، وقم باتمام المهام، ومتابعة العمل لخمسة وعشرين يوماً.. كما يمكنك تسجيل اشتراك مدفوع على موقع Try Hack Me إذا أردت استخدام بيئة اختراق جاهزة عبر المتصفح، رسومهم في المتناول كما يمكنك الحصول على تخفيض للاشتراك السنوي بمناسبة الفعالية. بخلاف هذه الفعالية، فالموقع ملئ بالمعامل والمختبرات العملية الرائعة المناس...

هجمات التصيّد - الهندسة الاجتماعية

تعد هجمات التصيّد phishing هي واحدة من أشهر طرق وأساليب استخراج كلمات السر من الضحايا، وهي احدى أساليب الهندسة الاجتماعية، والتي يقصد بها خداع المستخدم للحصول منه على معلومات حساسة يقدمها طواعية إلى المخترقين. تعد هجمات التصيد من اﻷساليب الشائعة في عالم الاختراق ، تؤثر على العديد من اﻷفراد والشركات على مختلف المستويات، وهي تتم في الغالب بواسطة رسائل بريد إليكتروني تهدف لخداع المستخدم، فمثلاً قد تصلك رسالة من منصة التواصل الاجتماعي الخاصة بك تطلب منك اجراءاً عاجلاً، أو تخبرك أن ثم طلب اضافة من فتاة جميلة ينتظرك (مثلاً)، لقبول طلب الاضافة اضغط هنا. في حال استخدامك للرابط في الرسالة التي تبدو أصلية تماماً، وسيقودك الرابط إلى موقع شبيه بمنصة التواصل الاجتماعي الخاصة بك تماماً تطلب منك تسجيل الدخول، إلا أنه في الحقيقة موقع يخص المخترق، وستصله فوراً بياناتك التي سلمتها له طواعية. كيف تحمي نفسك من سرقة بياناتك؟ هناك العديد مما يمكن فعله هنا، لكن اﻷهم على الاطلاق هو: اليقظة والحذر الحس السليم وتقييم المواقف والفكر النقدي سلاحك هنا، تذكّر دائماً أنه ﻻ يوجد اجراء مستعجل إلى حد أن يمنعني من التف...