1. Introducción a la función IS_Numberic
Algunos programas de CMS domésticos han utilizado la función IS_Numberic.
bool is_numeric (mixto $ var)
Devuelve verdadero si VAR es una cadena numérica y numérica, de lo contrario devuelve falso.
2. ¿Es segura la función?
A continuación, echemos un vistazo a un ejemplo para ilustrar si esta función es segura.
La copia del código es la siguiente: $ s = is_numeric ($ _ get ['s'])? $ _ Get ['s']: 0;
$ sql = "Insertar en valores de prueba (tipo) ($ s);";
mysql_query ($ sql);
El programa de fragmento anterior determina si el parámetro S es un número, y devuelve un número si no es así, devuelve 0 y luego lo lleva a la consulta de la base de datos. (De esta manera, las declaraciones SQL no se pueden construir)
Convertimos '1 o 1' a hexadecimal 0x31206f722031 como el valor del parámetro S
Después de ejecutar el programa, consultamos la base de datos para ver, como se muestra en la figura a continuación:
Si vuelve a considerar los campos de esta tabla y no filtra y trae otra declaración SQL, causará 2 inyecciones.
3. Resumen
Intente no usar esta función. 1 o 1 no aparecerá.