ما هو حقن SQL (SQLi)؟
حقن SQL (SQLi) هو نوع من الهجمات حيث يقوم المهاجمون بإدخال تعليمات SQL ضارة في حقل الإدخال للتلاعب بقاعدة البيانات.
يستهدف هذا الهجوم التطبيقات التي تفشل في التعامل بشكل صحيح مع التحقق من صحة الإدخال، مما يسمح بالوصول غير المصرح به إلى بيانات حساسة مثل كلمات المرور أو تفاصيل بطاقات الائتمان، إلخ.
كيف يعمل حقن SQL
عندما تقوم التطبيقات بإدراج إدخال المستخدم مباشرة في استعلام قاعدة البيانات دون التحقق المناسب، يمكن للمهاجمين تعديل سلوك الاستعلام لإدخال تعليمات SQL ضارة.
على سبيل المثال:
SELECT * FROM users WHERE username = 'admin' AND password = '12345';
يمكن للمهاجم إدخال:
' OR '1'='1
مما يؤدي إلى:
SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '';
هذا دائمًا ما يعيد true، مما يمنح الوصول غير المصرح به.
لماذا يعتبر حقن SQL مهمًا في الأمن السيبراني
حقن SQL هو التقنية الأكثر خطورة وأقدم في الأمن السيبراني. يتم إدراج هذا النوع من الهجمات باستمرار في قائمة OWASP Top 10.
حتى الثغرات الصغيرة تسمح للمهاجم ب:
- الوصول إلى البيانات أو تعديلها أو حذفها
- تجاوز المصادقة
- تنفيذ عمليات إدارية على قاعدة البيانات.
- اختراق النظام بالكامل.
أنواع شائعة من حقن SQL
- حقن SQL الكلاسيكي: الحقن المباشر عبر نماذج الويب أو معلمات URL.
- حقن SQL الأعمى: يستنتج المهاجمون معلومات قاعدة البيانات بشكل غير مباشر (مثل عبر رسائل الخطأ أو وقت الاستجابة).
- حقن SQL المعتمد على الاتحاد: يستخدم عامل التشغيل UNION لدمج النتائج من استعلامات متعددة.
- حقن SQL المعتمد على الخطأ: يعتمد على رسائل خطأ قاعدة البيانات لاستخراج المعلومات.
- حقن SQL الأعمى المعتمد على الوقت: يستغل تأخيرات استجابة الخادم لتخمين نتائج الاستعلام.
كيفية منع حقن SQL
1. استخدام الاستعلامات المعلبة (البيانات المحضرة)
تأكد من أن أوامر SQL تعامل مدخلات المستخدم كبيانات، وليس كود قابل للتنفيذ.
cursor.execute("SELECT * FROM users WHERE username = ?", (username,))
2. التحقق من صحة المدخلات وتنقيتها
تحقق من صحة جميع المدخلات من المستخدمين، مع السماح فقط بالأحرف المتوقعة.
3. استخدام أطر عمل ORM
أطر العمل مثل Prisma وHibernate وغيرها تقلل من التعامل المباشر مع SQL.
4. مبدأ أقل امتياز
حدد أذونات المستخدم، وأعط الأذونات المطلوبة فقط.
5. اختبار الأمان المنتظم
استخدم أدوات اختبار أمان التطبيقات مثل SAST، DAST أو IAST للكشف عن عيوب الحقن مبكرًا.
مثال في العالم الحقيقي
تعرض موقع متجر إلكتروني للاختراق حيث استخدم المهاجمون حقن SQL في نموذج تسجيل الدخول لاستخراج تفاصيل بطاقات الائتمان من قاعدة بياناته.
مصطلحات ذات صلة
- XSS (Cross-Site Scripting)
- DAST (اختبار أمان التطبيقات الديناميكي)
- OWASP Top 10
- اختبار أمان التطبيقات