سلسلة الهروب الحقيقية MySQL
-
30-09-2019 - |
سؤال
كنت أحاول تطهير المدخلات إلى تسجيل الدخول إلى PHP باستخدام AddSlashes و MySQL_Real_escape_string. استخدام addslashes
يعمل ، ولكن mysql_real_escape_string
سوف لن.
إليك مثال على ما يسمح لي بتسجيل الدخول بشكل صحيح:
$user = addslashes($_POST['user']);<br/>
$password = addslashes($_POST['password']);
وهذا لن:
$user = mysql_real_escape_string($_POST['user']);<br/>
$password = mysql_real_escape_string($_POST['password']);
أيضا ، بعض الحقول الأخرى الخاصة بي تحتوي على علقات الافتراضات. لم يتم إرجاع أي شيء عند استخدام AddSlashes ، نظرًا لأن الإدخال الموجود في DB لم يفلت. كنت أتساءل عما إذا كنت أستخدم mysql_real_escape_string
يمكنني إصلاح هذا ، لكنني لا أعرف كيف.
المحلول
استخدم دائمًا mysql_real_escape_string بدلاً من الإضافة. تأكد من توصيلك بقاعدة البيانات قبل تشغيله خلاف ذلك سوف خطأ.
نصائح أخرى
mysql_real_escape_string () لا يهرب ٪ و _. هذه هي البطاقات البرية في MySQL إذا كان مع ذلك مع منحة ، أو المنح ، أو الإلغاء.
والشيء الأكثر أهمية هو عدم الثقة في مدخلات المستخدم.
لذلك ، استخدم HTMLSpecialChars و Strip_tags لتحسين الأمان.
في بعض الأحيان قد يكتب المستخدم '
, ، هذا الرمز ولكن SQL يعامل كوسيلة مختلفة ويسمح له بعدم السماح بإدخال الجداول ، لا يمكننا تقييد المستخدم حتى نستخدم سلسلة الهروب الحقيقية MySQL لتجنب هذا النوع من الأخطاء
ملاحظة: إذا قمت بتطبيق هذا ، فيجب الاتصال بقاعدة البيانات الأخرى ، فلن تعمل