Ver Mensaje Individual
  #22  
Antiguo 16-04-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No hombre, no. Para que tú puedas poner una consulta como las de arriba, necesitas inyectarla. Y para eso es necesario que puedas poner apóstrofos sin restricciones. Una vez que puedes hacer esto entonces claro que puedes hacer uso del comodín para averiguar información. Pero el mal no está en el comodín en sí.

Es por eso que molesta ver este tipo de mensajes en donde se hace una afirmación que asusta y que no necesariamente es correcta.

Digámoslo de otra manera. Un código como este:

Código Delphi [-]
Query1.SQL.Add('select * from tabla where nombre like ' + Edit1.Text );

deja abierta la puerta a la inyección SQL. Pero si escapamos los apóstrofos:

Código Delphi [-]
Query1.SQL.Add('select * from tabla where nombre like ' + Escape(Edit1.Text ));

sigo sin ver dónde está el problema con que el usuario escriba un comodín. Los ejemplos que pones se basan en poder inyectar una sentencia con comodín pero gracias a que se deja abierta la puerta del apóstrofo.

Es decir, no es que no entienda cómo usar el comodín para extraer información, una vez rota la entrada (usando tus términos). El caso es que el mensaje original dice, textualmente:

Cita:
He visto muchos casos donde por ejemplo en un soft de gestión, para buscar un producto por nombre le piden al usuario que escriba un "%" como comodín si no se sabe el nombre completo
Dando a entender que el mero uso del comodín es nocivo, sin siquiera saber si el software en cuestión usa o no parámetros, y aún no usándolos, sin saber si escapa o no los apóstrofos.

// Saludos
Responder Con Cita