
1️⃣ هجوم SQL Classic Injection (حقن تقليدي)
يتم إدخال تعليمات SQL ضارة مباشرة في حقول الإدخال، مما يؤدي إلى تغيير الاستعلامات الأصلية.
مثال عملي
استعلام غير آمن
sql
SELECT * FROM users WHERE username = 'اسم_المستخدم' AND password = 'كلمة_المرور';
هجوم حقن SQL
إذا أدخل المهاجم:
sql
' OR '1'='1' --
يصبح الاستعلام:
sql
SELECT * FROM users WHERE username = '' OR '1'='1' --' AND password = 'كلمة_المرور';
💥 النتيجة: يحصل المهاجم على الوصول غير المشروع إلى جميع الحسابات!
2️⃣ هجوم Union-Based SQL Injection
يتم استخدام كلمة مفتاحية UNION SELECT
لاسترداد بيانات إضافية من قاعدة البيانات.
مثال عملي
استعلام غير آمن
sql
SELECT id, username FROM users WHERE id = '5';
هجوم Union SQL
المهاجم يُدخل:
sql
5 UNION SELECT 1, version() --
💥 النتيجة: يتم عرض إصدار قاعدة البيانات، مما يساعد في استكشاف الثغرات الأمنية.
3️⃣ هجوم Time-Based Blind SQL Injection
يُستغل التأخير الزمني لاستنتاج البيانات دون الحاجة إلى ردود مرئية.
مثال عملي
استعلام غير آمن
sql
SELECT * FROM users WHERE id = '5';
هجوم Time-Based SQL
sql
5 AND IF(1=1, SLEEP(5), 0) --
💥 النتيجة: إذا تأخر الرد 5 ثوانٍ، يعرف المهاجم أن الشرط صحيح، مما يسمح له باستخراج البيانات تدريجيًا.
4️⃣ هجوم Error-Based SQL Injection
يُستغل أخطاء قاعدة البيانات لاسترداد معلومات حساسة.
مثال عملي
استعلام غير آمن
sql
SELECT * FROM users WHERE id = '5';
هجوم Error-Based SQL
sql
5' AND (SELECT 1/0) --
💥 النتيجة: يظهر خطأ “القسمة على صفر”، مما يساعد المهاجم في تحديد هيكل قاعدة البيانات.
🛡️ كيف يمكن الحماية من هذه الهجمات؟
✅ استخدام الاستعلامات المُعدة (Prepared Statements) لمنع إدخال البيانات مباشرة داخل الاستعلامات.
✅ تصفية وتنقية المدخلات بحيث لا يتم قبول أي بيانات غير متوقعة.
✅ إعداد صلاحيات صارمة بحيث لا يتمكن المستخدم العادي من تنفيذ استعلامات حساسة.
✅ استخدام Web Application Firewalls (WAFs) للكشف عن الهجمات وحجبها تلقائيًا.
🎯 الخلاصة: هجمات SQL Injection تشكل تهديدًا خطيرًا، لكن يمكن تحصين الأنظمة باتباع أفضل الممارسات الأمنية.
تأكد دائمًا من تعزيز حماية قاعدة البيانات لمنع أي محاولات استغلال غير مشروعة. 🚀
أضف تعليقاً
يجب أنت تكون مسجل الدخول لتضيف تعليقاً.