تهريب نصوص SQL
هرّب النص لاستخدامه داخل نص SQL بين علامتي اقتباس مفردتين: ضاعف علامات الاقتباس (SQL القياسية) أو استخدم تهريب MySQL بالشرطة المائلة الخلفية. مع إحاطة اختيارية.
تتحول كل ' إلى ''. يعمل في PostgreSQL وSQLite وSQL Server وOracle وMySQL مع NO_BACKSLASH_ESCAPES. في شيفرة التطبيق، استخدم الاستعلامات ذات المعاملات.
يعمل بالكامل في متصفحك. لا يتم رفع بياناتك أبدًا.
أدوات ذات صلة
عرض الكلما هو تهريب نصوص SQL؟
يحوّل تهريب SQL قيمة نصية خام إلى صيغة يمكن وضعها داخل نص SQL حرفي بين علامتي اقتباس مفردتين. يضاعف الوضع القياسي كل علامة اقتباس مفردة (O'Reilly ← O''Reilly)؛ ويستخدم وضع MySQL تهريبًا بالشرطة المائلة الخلفية مثل mysql_real_escape_string(). والغاية كتابة SQL يدويًا – أما كود التطبيقات فعليه استخدام الاستعلامات ذات المعاملات.
كيفية استخدام تهريب نصوص SQL
- اختر أسلوب التهريب: SQL القياسية أو MySQL.
- فعّل اختياريًا إحاطة النتيجة بعلامات اقتباس مفردة.
- اكتب القيمة الخام أو الصقها في مربع الإدخال.
- انسخ الناتج المهرَّب إلى SQL الخاص بك.
مثال
O'Reilly \ x
O''Reilly \ x
وضع SQL القياسية: تُضاعف علامات الاقتباس وتبقى الشرطة المائلة الخلفية.
متى تستخدم تهريب نصوص SQL
استخدمه لكتابة عبارات SQL لمرة واحدة أو بيانات تهيئة أو سكربتات ترحيل فيها نصوص بها فواصل عليا. لا تستخدم تهريب النصوص كحماية من حقن SQL في التطبيقات – استخدم العبارات المُعدّة مسبقًا بمعاملات مربوطة. أما تهريب المعرّفات (أسماء الجداول/الأعمدة) فمسألة أخرى لا تغطيها الأداة.
كيف يعمل تهريب نصوص SQL
SQL القياسية (ANSI؛ PostgreSQL وSQLite وSQL Server وOracle وMySQL مع NO_BACKSLASH_ESCAPES): تصبح كل ' إلى ''؛ وتُعدّ الشرطة المائلة الخلفية حرفية وتبقى دون تغيير. وضع MySQL (إعدادات MySQL/MariaDB الافتراضية): تُسبق \0 وسطر جديد وإرجاع السطر والشرطة المائلة الخلفية و' و" وCtrl+Z (0x1A) بشرطة مائلة خلفية، بما يطابق mysql_real_escape_string(). وتُترك فواصل الأسطر في الوضع القياسي فواصل أسطر حقيقية، وهو صالح داخل النصوص الحرفية في SQL.
حالات الاستخدام الشائعة
- إدراج أسماء مثل O'Reilly في INSERT يدوي
- كتابة سكربتات تهيئة أو ترحيل بنصوص مقتبسة
- تجهيز نصوص حرفية لنُسخ MySQL الاحتياطية
- فهم الفرق بين تهريب ANSI وMySQL
ملاحظة أمنية
التهريب لا يغني عن العبارات المُعدّة مسبقًا. كل شيء يعمل محليًا؛ ولا يُرسَل أي شيء إلى خادم.
الأسئلة الشائعة
هل يكفي التهريب لمنع حقن SQL؟
لا. استخدم الاستعلامات ذات المعاملات؛ فالتهريب عرضة للخطأ ويعتمد على إعدادات الخادم ومجموعة الأحرف.
أي وضع أستخدم مع PostgreSQL؟
SQL القياسية. فمنذ PostgreSQL 9.1 تكون الشرطة المائلة الخلفية في النصوص العادية حرفية.
لماذا يحتاج MySQL إلى تهريب مختلف؟
يعامل MySQL افتراضيًا الشرطة المائلة الخلفية كحرف تهريب داخل النصوص، لذا يجب تهريبها أيضًا.