لماذا تهتم باستخدام mysql_real_escape_string () لأن $ _post يضيف القطع المائلة قبل الاقتباس تلقائيًا؟

StackOverflow https://stackoverflow.com/questions/1747677

سؤال

في 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

نصائح أخرى

  1. MySQL_Real_escape_string يهرب أكثر من مجرد ربعات واحدة ، لأن هناك chars أخرى يمكن أن تسبب مشاكل في الحقن.
  2. يضيف PHP فقط المائلات إلى الإدخال المنشور إذا تم تمكين Magic_quotes ، والتي تعتبر ممارسة سيئة (لأنها تؤدي إلى الكسل وعدم استخدام أشياء مثل Real_escape_string!)

ونقلت السحر تم إهماله اعتبارًا من PHP 5.3.0 وعجاوم من PHP 6.0.

تحرير: لذلك لا يمكن الاعتماد على مائل السيارات لأنها يتم إهمالها بواسطة معظم منشآت PHP ، وسرعان ما لن تعمل على الإطلاق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top