Ver Mensaje Individual
  #8  
Antiguo 22-02-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola krewer.

Primero que nada agradezco que hayas compartido tu solución.

Aunque el último código es mas compacto, es vulnerable a la inyección SQL. El uso de parámetros evita totalmente esa posibilidad.

Usándo parámetros:
Código Delphi [-]
  with fdata do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select NICK, HORA, MENSAJE, ESTADO ');
    SQL.Add('from BITACORA ');
    SQL.Add('where nick = :PNOMBRE and FECHA = :PFECHA');
    ParamByName('PNOMBRE').AsString:= nombre;
    ParamByName('PFECHA').AsString:= FormatDateTime('YYYY/MM/DD', fecha.Date);
    Open;
  end;
Generámos un código un poco más extenso, pero mucho más seguro.

También hay que destacar que si el valor de 'nombre' es tomado internamente por la aplicación y no ingresado por el usuario, no hay posibilidad de inyección SQL. De todos modos, el uso de parámetros es una buena costumbre.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita