Ver Mensaje Individual
  #5 (permalink)  
Antiguo 23/05/2007, 12:43
Avatar de u_goldman
u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 10 meses
Puntos: 98
Re: Seguridad en paginas asp 3

SQL Injection por querystring, lo más práctico es utilizar consultas parametrizadas:

Código:
strConnect = 'String de conexion
id = Request.QueryString("id")
strSQL = "SELECT campos FROM tabla WHERE id = ?" 'No estoy concatenando ningun valor

Set ObjConn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
Set cmd = Server.CreateObject("ADODB.Command")

'Aqui vamos a pasar el valor, se necesita crear un parametro para este comando
Set param = cmd.CreateParameter("id", adInteger, adParamInput, 4, id)
cmd.Parameters.Append(param)

ObjConn.Open strConnect
'Abrimos el recordset
rs.Open cmd
Otra cosa que puedes hacer es utilizar una función que está circulando por ahí en el post de la librería de funciones y clases llamándola antes de concatenar el valor a tu consulta

Código:
strSQL = "SELECT campos FROM tabla WHERE id = " & funcionReemplaza(id)
Pero de nuevo, en mi opinión es más eficiente, ordenado y seguro parametrizar tus consultas.

Lectura obligada:
http://www.aspfaq.com/params.htm

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway