ante todo disculpad mi ignorancia en este tema;
en el post que puse mas arriba habia un enlace a un hilo que trataba de inyeccion sql.
he recuperado un post de ese hilo con este enlace
http://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL que me parece muy interesante pero que lamentablemente poco entiendo
el problema que expuse en este hilo lo he solucionado de esta manera:
Código:
Código Delphi
[-]
procedure openADOQuery (ADOQuery:TObject);
begin
with frmadmin do
WITH ADOQuery as TADOQuery do
begin
IF NOT prepared
then
begin
close ;prepared;
open
end
else open ;
end;
end;
procedure muestratodosdatos () ;
var torigen,tdestino:string;
begin
with frmadmin do
begin
TRY
torigen:= cbtold.text ;
WITH ADOQuery1 do
begin
close ;sql.clear ;parameters.clear ;
sql.add('SELECT * FROM '+torigen);
openADOQuery (ADOQuery1);
lold.Caption := inttostr(recordcount) ;
end;
EXCEPT on exception do MessageDlg ('Errores al cargar los datos',mtWarning,[mbOk],0) ;
END;
...
esto me ha funcionado pero me preocupa el tema de la inyeccion sql; de esta manera quedaria el codigo expuesto a que software malicioso atacara la aplicacion y que por consiguiente esta fuera vulnerable?
vamos; otro ejemplo, con este codigo:
Código:
...
ADOQuery1.sql.add ('SELECT campo1,campo2 FROM tabla WHERE condicion =:parametro');
ADOQuery1.parameters.parambyname('parametro').value := unvalor ;
...
la aplicacion seria vulnerable a ataques?
repito, disculpad mi ignorancia
gracias y saludos,