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!!

Preguntas similare

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.
Respuesta Responder a este mensaje
#2 Rick
01/12/2007 - 01:13 | Informe spam
Muchas gracias Alberto!

Saludos!!

"Alberto Poblacion"
escribió en el mensaje news:%
"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.


Respuesta Responder a este mensaje
#3 Berto
01/12/2007 - 02:10 | Informe spam
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;



Hola,

Como se hace esto ahora con el Linq?
Respuesta Responder a este mensaje
#4 Willy Mejía
02/12/2007 - 04:15 | Informe spam
Con Linq no puedes tener un SQL Injection, dado que todas las consultas que
construye son parametrizadas, de hecho hay quienes recomiendan utilizar Linq
para evitar un SQL Injection.

Saludos,
Willy Mejía

"Berto" <bb> escribió en el mensaje
news:
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;



Hola,

Como se hace esto ahora con el Linq?


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida