Una pregunta de novato aquí.
Acabo de leer una breve introducción a la inyección de SQL en enlace
Dice encontrar una ruta de solicitud GET en la aplicación PHP para ver si es vulnerable o no.
Tengo un sitio web, con la siguiente URL de consulta.
http://example.com/get_stuff?query=hello&limit=50&offset=0
Estoy utilizando una consulta sin formato, por lo que, según el sitio, asumo que mi sitio web es vulnerable a la inyección de SQL.
Para probar esto, intento esto.
http://example.com/get_stuff?query=hello&limit=50'&offset=0
(agregar una comilla simple después del límite = 50)
Esto imprime el error, como se esperaba y como sugiere el sitio web, lo que significa que mi consulta es vulnerable.
Ahora, para proteger esto, quiero asegurarme de "escapar" de las citas en mis consultas. Estoy usando un marco PHP llamado CodeIgniter, en el que hay una función llamada $this->db->escape()
.
Así que uso esta función de "escape" en el valor 50, pero ahora devuelve un error diciendo que "50" no es un número entero válido.
Bastante justo, la condición "LÍMITE" solo debería recibir un valor entero.
Pero mi pregunta es, ¿es segura mi consulta ahora "inyección SQL"?