1. مقدمة في وظيفة is_numberic
استخدمت بعض برامج CMS وظيفة IS_Numberic.
Bool is_numeric (مختلط $ var)
إرجاع صحيح إذا كان VAR عبارة عن سلسلة رقمية وسلسلة رقمية ، وإلا بإرجاع خطأ.
2. هل الوظيفة آمنة؟
بعد ذلك ، دعونا نلقي نظرة على مثال لتوضيح ما إذا كانت هذه الوظيفة آمنة.
نسخة الكود كما يلي: $ s = is_numeric ($ _ get ['s'])؟ $ _ get ['s']: 0 ؛
$ sql = "إدراج قيم (نوع) (نوع) ؛" ؛
mysql_query ($ sql) ؛
يحدد برنامج الشظية أعلاه ما إذا كانت المعلمة S عبارة عن رقم ، ويعيد رقمًا إذا لم يكن كذلك ، وإرجاع 0 ، ثم يجلبها إلى استعلام قاعدة البيانات. (بهذه الطريقة ، لا يمكن بناء عبارات SQL)
نقوم بتحويل "1 أو 1" إلى سداسي عشري 0x31206F722031 كقيمة المعلمة S
بعد تشغيل البرنامج ، نستفسر عن قاعدة البيانات لنرى ، كما هو موضح في الشكل أدناه:
إذا قمت بإعادة تصوير حقول هذا الجدول ولم تقم بتصفية وإحضار بيان SQL آخر ، فسوف يتسبب ذلك في حقن.
3. ملخص
حاول عدم استخدام هذه الوظيفة. 1 أو 1 لن يظهر.