Hola. Siempre uso la función mysql_real_escape_string() de PHP para evitar inyecciones sql, entonces la uso en todas las variables $_GET y $_POST.
Me acabo de dar cuenta de que esta función permite inyección de código que no tiene comillas simples no dobles, por ejemplo:
http://ejemplo.com/index.php?id=%274
El "%274" vale lo mismo que la comilla simple, entonces ya se puede inyectar sql en mi web!
También vi que se puede inyectar código poniendo una inyección sin comillas por ejemplo:
http://ejemplo.com/index.php?id=4 AND BENCHMARK(99999999,MD5(0x123123));
con "AND BENCHMARK(99999999,MD5(0x123123));" se genera un DoS en mi servidor, porque consume mucho procesador.
¿Existe una forma de que se limpien absolutamente todo tipo de inyección? Es decir, que no sea tan mala como mysql_real_escape_string que permite inyectar lo que mostré de ejemplo.
Muchas gracias de antemano
Me acabo de dar cuenta de que esta función permite inyección de código que no tiene comillas simples no dobles, por ejemplo:
http://ejemplo.com/index.php?id=%274
El "%274" vale lo mismo que la comilla simple, entonces ya se puede inyectar sql en mi web!
También vi que se puede inyectar código poniendo una inyección sin comillas por ejemplo:
http://ejemplo.com/index.php?id=4 AND BENCHMARK(99999999,MD5(0x123123));
con "AND BENCHMARK(99999999,MD5(0x123123));" se genera un DoS en mi servidor, porque consume mucho procesador.
¿Existe una forma de que se limpien absolutamente todo tipo de inyección? Es decir, que no sea tan mala como mysql_real_escape_string que permite inyectar lo que mostré de ejemplo.
Muchas gracias de antemano