evitar sql injection en textbox y color

30/11/2007 - 22:58 por Rick | Informe spam
que tal lista, una pregunta, que funcion puedo usar para que el texto que
sea tecleado en una caja de texto no sea interpretada por mi consulta sql?
es decir para prevenir un sql injection

y otra es en una caja de texto (textbox) multilinea se puede hacer que una
linea sea de un color y otra de otro? por decir algo las nones color negro,
las pares color azul, se puede?


Saludos!!
 

Leer las respuestas

#1 Alberto Poblacion
30/11/2007 - 23:34 | Informe spam
"Rick" wrote in message
news:%
que tal lista, una pregunta, que funcion puedo usar para que el texto que
sea tecleado en una caja de texto no sea interpretada por mi consulta sql?
es decir para prevenir un sql injection



Bueno, no es exactamente una función. La forma idónea de evitar las
inyecciones de SQL consiste en no concatenar nunca el texto del textbox en
una sentencia. En lugar de eso, la forma correcta de proceder consiste en
parametrizar la sentencia y pasar el contenido del TextBox como parámetro.

Por ejemplo, si ahora tienes esto:
sentencia="Select * from LaTabla where campo='"+TextBox1.Text+"'";

en su lugar lo debes poner asi:
sentencia="Select * from LaTabla where campo=@param";
SqlCommand cmd = new SqlCommand(sentencia, conexion);
SqlParameter param = cmd.Parameters.Add("@param", SqlDbType.Varchar, 50);
param.Value=TextBox1.Text;

y luego ya ejecutas el cmd.

Entre otras cosas, además de evitar las inyecciones de SQL, esto también
te evita preocuparte de los caracteres que requieren procesamiento especial
(por ejemplo, si te teclean una comilla en el textbox), y si lo haces con
fechas o datos numéricos te evita preocuparte por el formato en que los
tienes que poner en la sentencia SQL.


y otra es en una caja de texto (textbox) multilinea se puede hacer que una
linea sea de un color y otra de otro? por decir algo las nones color
negro, las pares color azul, se puede?



Con el textbox normal, no. Podrías usar un RichTextBox, pero el color se
lo tendrías que ir cambiando por código, no es automático.

Preguntas similares