ما هو هجوم SQL Injection؟

سهلقراءة دقيقةآخر تحديث 1 أكتوبر 2026

عام

الإجابة

SQL Injection هجوم يحقن أوامر SQL خبيثة عبر مدخلات المستخدم، مثل حقل البحث أو تسجيل الدخول، للتلاعب بقاعدة البيانات أو سرقة بياناتها.

الكود المعرّض للهجوم

// Dangerous: user input goes straight into SQL
$sql = "SELECT * FROM users WHERE email = '" . $_POST['email'] . "'";

إذا كتب المهاجم ' OR '1'='1 في حقل البريد، يصبح الشرط صحيحًا دائمًا، ويُرجع كل المستخدمين.

الحماية: الاستعلامات المجهزة

$stmt = $pdo->prepare('SELECT * FROM users WHERE email = ?');
$stmt->execute([$_POST['email']]);

هنا تُرسل القيمة منفصلة عن الأمر، فلا يمكن أن تتحول إلى SQL. أدوات مثل Query Builder في Laravel و$wpdb->prepare() في ووردبريس تفعل هذا.

اختبر فهمك

أي مما يلي يطابق هذا التعريف؟

استغلال ثغرات في قواعد البيانات عبر إدخال استعلامات خبيثة في مدخلات المستخدم، للتلاعب بالبيانات أو الوصول غير المصرح به.