Por que usar Parametro y no SQL tradicional

28/03/2005 - 21:16 por Don Quijote de Nicaragua | Informe spam
Hola chicos, he visto que en la mayoria de los ejemplos ahora usan
parametros para introducir informacion en la base de datos, por que usar
Parametros en ves de nuestro SQL tradicional de inserción.
Gracias.
Don Quijote de Nicaragua

Preguntas similare

Leer las respuestas

#1 DJ MIAO
29/03/2005 - 05:22 | Informe spam
Habla claro .
Que es tu SQL tradicional?



Miao...
Comprate un libro.

Hola chicos, he visto que en la mayoria de los ejemplos


ahora usan
parametros para introducir informacion en la base de


datos, por que usar
Parametros en ves de nuestro SQL tradicional de


inserción.
Gracias.
Don Quijote de Nicaragua


.

Respuesta Responder a este mensaje
#2 Eduardo A. Morcillo [MS MVP VB]
29/03/2005 - 05:56 | Informe spam
Concatenar la data ingresada por el usuario en la sentencia SQL tiene dos
inconvenientes.

El primero es con el formato de la data. Por ejemplo si quieres insertar en
un campo texto que contiene un ' dara error o deberas duplicar los ' para
que SQL no lo entienda como final del texto. Tambien puedes tener problemas
de formato con las fechas si las concatenas. Esto no sucede si se usan
parametros.

Lo segundo y mas importante es por seguridad. Un usuario malintencionado
puede ingresar sentencias SQL dentro de tu sentencia lo cual puede ser muy
peligroso en combinacion con una cuenta de usuario con demasiados permisos.
Un ejemplo, supongamos que tienes esta sentencia:

SQL = "SELECT * FROM Tabla WHERE Campo = '" & buscar.Text & "'"

Un usuario malintencionado puede ingresar en el campo buscar algo asi:

'; DROP TABLE Tabla --

Lo que ocasiona estas sentencias como resultado de la concatenacion:

SELECT * FROM Tabla WHERE Campo = ''; DROP TABLE Tabla --'

Resultando en la eliminacion de la tabla. De esta misma forma se podria
hacer cualquier cosa como por ejemplo, si es contra SQL Server, ejecutar el
procedimiento almacenado xp_cmdshell y formatear el disco rigido. Usando
parametros te evitas esto ya que el texto del parametro no se concatena con
el comando sql sino que es tomado como texto.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
https://mvp.support.microsoft.com/p...4EF5A4191C
Respuesta Responder a este mensaje
#3 DJ MIAO
29/03/2005 - 06:33 | Informe spam
A cuantas conferencias asistes de Microsoft porque ya
tienen el disco rallado con SQLInjectionSecurity es lo
unico que saben decir.


Miao...
Comprate un libro.

Concatenar la data ingresada por el usuario en la


sentencia SQL tiene dos
inconvenientes.

El primero es con el formato de la data. Por ejemplo si


quieres insertar en
un campo texto que contiene un ' dara error o deberas


duplicar los ' para
que SQL no lo entienda como final del texto. Tambien


puedes tener problemas
de formato con las fechas si las concatenas. Esto no


sucede si se usan
parametros.

Lo segundo y mas importante es por seguridad. Un usuario


malintencionado
puede ingresar sentencias SQL dentro de tu sentencia lo


cual puede ser muy
peligroso en combinacion con una cuenta de usuario con


demasiados permisos.
Un ejemplo, supongamos que tienes esta sentencia:

SQL = "SELECT * FROM Tabla WHERE Campo = '" &


buscar.Text & "'"

Un usuario malintencionado puede ingresar en el campo


buscar algo asi:

'; DROP TABLE Tabla --

Lo que ocasiona estas sentencias como resultado de la


concatenacion:

SELECT * FROM Tabla WHERE Campo = ''; DROP TABLE Tabla --


'

Resultando en la eliminacion de la tabla. De esta misma


forma se podria
hacer cualquier cosa como por ejemplo, si es contra SQL


Server, ejecutar el
procedimiento almacenado xp_cmdshell y formatear el


disco rigido. Usando
parametros te evitas esto ya que el texto del parametro


no se concatena con
el comando sql sino que es tomado como texto.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
https://mvp.support.microsoft.com/p...73D2-BD48-


4197-A380-104EF5A4191C


.

Respuesta Responder a este mensaje
#4 Don Quijote de Nicaragua
30/03/2005 - 07:23 | Informe spam
Muchas gracias por tu explicación Eduardo, lo de formatiar el disco duro me
dejo muy preocupado, jejeje.
Saludos desde Nicaragua.
Don Quijote de Nicaragua.

"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:
Concatenar la data ingresada por el usuario en la sentencia SQL tiene dos
inconvenientes.

El primero es con el formato de la data. Por ejemplo si quieres insertar


en
un campo texto que contiene un ' dara error o deberas duplicar los ' para
que SQL no lo entienda como final del texto. Tambien puedes tener


problemas
de formato con las fechas si las concatenas. Esto no sucede si se usan
parametros.

Lo segundo y mas importante es por seguridad. Un usuario malintencionado
puede ingresar sentencias SQL dentro de tu sentencia lo cual puede ser muy
peligroso en combinacion con una cuenta de usuario con demasiados


permisos.
Un ejemplo, supongamos que tienes esta sentencia:

SQL = "SELECT * FROM Tabla WHERE Campo = '" & buscar.Text & "'"

Un usuario malintencionado puede ingresar en el campo buscar algo asi:

'; DROP TABLE Tabla --

Lo que ocasiona estas sentencias como resultado de la concatenacion:

SELECT * FROM Tabla WHERE Campo = ''; DROP TABLE Tabla --'

Resultando en la eliminacion de la tabla. De esta misma forma se podria
hacer cualquier cosa como por ejemplo, si es contra SQL Server, ejecutar


el
procedimiento almacenado xp_cmdshell y formatear el disco rigido. Usando
parametros te evitas esto ya que el texto del parametro no se concatena


con
el comando sql sino que es tomado como texto.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo



https://mvp.support.microsoft.com/p...4EF5A4191C


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