يظهر خطر حقن SQL عندما تتحول مدخلات المستخدم إلى جزء من بنية الاستعلام. العلاج الأساسي هو فصل القيم عن النص التنفيذي باستخدام معاملات مناسبة.
الفكرة الأساسية
استخدم الاستعلامات المحضّرة للبيانات، وقائمة سماح للعناصر التي لا تقبل الربط كأسماء أعمدة الترتيب. حدّد صلاحيات حساب قاعدة البيانات بما يحتاجه التطبيق.
خطوات عملية
- اربط قيم البحث والمعرفات بدل دمجها نصيًا.
- حوّل خيار الترتيب إلى اسم معروف داخل الكود.
- اختبر المدخلات غير المتوقعة دون عرض أخطاء قاعدة البيانات.

مثال تطبيقي
يمكن تحويل sort=title إلى عمود محدد مسبقًا، بينما تُربط عبارة البحث كمعامل مستقل.
خطأ شائع ينبغي تجنبه
الهروب اليدوي ليس بديلًا عامًا للتحضير، والتحقق من المدخلات وحده لا يضمن أمان بناء الاستعلام.
مثال تقني مبسّط
المقتطف التالي يوضح الفكرة، ويحتاج إلى تكييف مع بنية مشروعك ومساراته والتحقق المناسب قبل استخدامه.
$stmt = $pdo->prepare('SELECT id, title_ar FROM articles WHERE id = ?');
$stmt->execute([$articleId]);للتوسع في الموضوع
صور توضيحية: الغلاف من Unsplash، الصورة الداخلية من Unsplash. ترخيص الاستخدام.
