
25/09/2007, 06:33
|
| | Fecha de Ingreso: marzo-2007
Mensajes: 12
Antigüedad: 18 años Puntos: 1 | |
Re: duda mysql_num_rows Hola, en primer lugar gracias por contestar.
Respecto a las respuestas de venedan y ramoncito tengo que decirles que la inyección sql no es el problema, ya que si pongo por ejemplo, if(mysql_num_rows($resultado) > 0 me da como resultado ACCESO PERMITIDO.
Respecto a jpinedo y caerolus, Jpinedo como dice caerolus en la página web que me has pasado sale la predencia de operaciones de menor a mayor y yo diria que siempre AND tiene mayor precedencia que OR.
Entonces la consulta nos quedaria como dices:
"Dame todos los usuarios cuyo (nombre sea Admin Y su password sea '1') o (donde 1=1)"
entonces seria false or true = true --> Devuelve todos los registros
En cambio si pongo el password verdadero:
"Dame todos los usuarios cuyo (nombre sea Admin Y su password sea '123') o (donde 1=1)"
entonces seria true or true = true --> ¿Porque solo devuelve 1 registro?
Lo único que me viene a la cabeza es que en el primer caso, donde el password es incorrecto, como la primera condición es false quedaría:
"Dame todos los usuarios cuyo [esto es falso] o (donde 1=1)"
Entonces devuelve todos los campos
En el otro caso, en el que el password es correcto quedaría:
"Dame todos los usuarios cuyo (nombre sea Admin Y su password sea '123') o [como ya es verdadero, esto no sirve]"
como todo es verdadero, se ejecuta primero la condicion (nombre sea Admin Y su password sea '1') y ya no sigue comparando, con lo que solo se ve afectada 1 fila, la fila del admin.
Estoy en lo cierto? Gracias, saludos.
Última edición por jose.va18; 25/09/2007 a las 06:50 |