على الرغم من أن البعض قد جادلوا بأن الاستخدام غير الصحيح للوظيفة هو اللوم ، فقد أثار الآخرون مخاوف بشأن قيوده المتأصلة.
قيود الاستخدامإنه مصمم للهروب من قيم النص المخصصة للاستخدام ضمن عروض أسعار فردية في عبارات SQL ، كما هو موضح أدناه:
$ sql = "...` foo` = '$ value' ... "؛ يمكن أن يؤدي تطبيق mysql_real_escape_string في أي سياق آخر ، مثل استخدامه للهروب من القيم المستخدمة خارج اقتباسات ، يمكن أن يؤدي إلى الضعف. mysql_real_escape_string
مثال على الهجوم الذي يمكن أن يتجاوز mysql_real_escape_string عند استخدامه للهروب من القيم الرقمية. فكر في الاستعلام التالي:
$value = mysql_real_escape_string($value, $link); $sql = "... `foo` = '$value' ...";سيقوم الاستعلام بحذف جميع المستخدمين ، لأن شرط "أو 1 = 1" صحيح دائمًا. يوضح هذا الهجوم أهمية استخدام أنواع البيانات الصحيحة وطرق الهروب اعتمادًا على السياق. إذا لم يتم تعيين ترميز اتصال قاعدة البيانات بشكل صحيح ، فقد يؤدي ذلك إلى تناقضات بين كيفية هروب MySQL_Real_escape_string من الأوتار وكيف تفسرها قاعدة البيانات. يمكن أن يخلق هذا التناقض نقاط الضعف في ظل ظروف محددة ، خاصةً عند التعامل مع سلاسل متعددة الأوقات. يُنصح باستخدام أساليب بديلة مثل العبارات المعدة ، والاستعلامات المعلمة ، أو واجهات برمجة تطبيقات قاعدة البيانات الحديثة التي توفر حماية أكثر قوة ضد نقاط الضعف في الحقن.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3