لماذا تهتم باستخدام mysql_real_escape_string () لأن $ _post يضيف القطع المائلة قبل الاقتباس تلقائيًا؟
-
20-09-2019 - |
سؤال
في PHP ، أضف $ _POST مائلة قبل علامة اقتباس تلقائيًا ، فلماذا يزعجك تطبيق MySQL_REAL_ESCAPE_STRING ()؟ على سبيل المثال ، عندما أدخل 'rrr
في حقل الإدخال ، وأحصل \'rrr
عندما أرددها.
المحلول
لأن هذا يحدث فقط إذا تم تمكين Macigquotes في تكوين PHP الخاص بك ، والذي ، على حد علمي ، غير شائع إلى حد ما في الوقت الحاضر. أيضًا ، يهرب mysql_real_escape_string أيضًا من الأحرف الأخرى ذات الصلة بـ MySQL.
الدفع http://php.net/manual/en/security.magicquotes.php لمزيد من المعلومات حول أسعار السحر.
كما ترون ، هناك بالفعل تحذير من الإهمال لهذا التوجيه ، لذلك يجب عليك التحقق من تكوين الخادم الخاص بك على أي حال^^
تحرير: لتعطيل عروض الأسعار السحرية ، والبحث في مجلد XAMPP الخاص بك للحصول على php.ini ، وإضافة ، أو تغيير إذا كانت موجودة ، التوجيهات التالية:
; Magic quotes ; ; Magic quotes for incoming GET/POST/Cookie data. magic_quotes_gpc = Off ; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc. magic_quotes_runtime = Off ; Use Sybase-style magic quotes (escape ' with '' instead of \'). magic_quotes_sybase = Off
نصائح أخرى
- MySQL_Real_escape_string يهرب أكثر من مجرد ربعات واحدة ، لأن هناك chars أخرى يمكن أن تسبب مشاكل في الحقن.
- يضيف PHP فقط المائلات إلى الإدخال المنشور إذا تم تمكين Magic_quotes ، والتي تعتبر ممارسة سيئة (لأنها تؤدي إلى الكسل وعدم استخدام أشياء مثل Real_escape_string!)
ونقلت السحر تم إهماله اعتبارًا من PHP 5.3.0 وعجاوم من PHP 6.0.
تحرير: لذلك لا يمكن الاعتماد على مائل السيارات لأنها يتم إهمالها بواسطة معظم منشآت PHP ، وسرعان ما لن تعمل على الإطلاق.