Foros del Web » Programando para Internet » ASP Clásico »

proteger de sql injecting

Estas en el tema de proteger de sql injecting en el foro de ASP Clásico en Foros del Web. como protejo mis formularios para que no puedan hacerlo? tengo entendido que el sql injecting es metiendo lineas sql en los campos. como lo evito?...
  #1 (permalink)  
Antiguo 11/12/2009, 06:45
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 15 años, 11 meses
Puntos: 9
proteger de sql injecting

como protejo mis formularios para que no puedan hacerlo?
tengo entendido que el sql injecting es metiendo lineas sql en los campos. como lo evito?
  #2 (permalink)  
Antiguo 11/12/2009, 06:58
 
Fecha de Ingreso: enero-2008
Ubicación: Málaga - España
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: proteger de sql injecting

Obviamente, lo evitas filtrando el contenido del campo antes de enviarlo a la base de datos.

En el hilo de arriba de todo,
http://www.forosdelweb.com/f15/bibli...utinas-238829/

tienes ejemplos usando replace.
  #3 (permalink)  
Antiguo 11/12/2009, 07:37
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 15 años, 11 meses
Puntos: 9
Respuesta: proteger de sql injecting

reformulo mi pregunta, que debo impedir que escriban?
  #4 (permalink)  
Antiguo 11/12/2009, 08:00
Avatar de mc_quake  
Fecha de Ingreso: enero-2006
Ubicación: www.ecocargo.cl
Mensajes: 683
Antigüedad: 19 años, 3 meses
Puntos: 8
Respuesta: proteger de sql injecting

Function killChars(strWords)
dim badChars
dim newChars

badChars = array("xp_", "<", ">","--", ";--", ";", "/*", "*/", "@@","@", "char", "nchar", "varchar", "nvarchar", "alter", "begin", "cast", "create", "cursor", "declare", "delete", "drop", "exec", "execute", "fetch", "insert","kill", "open", "select", "sys", "sysobjects", "syscolumns", "table", "update","truncate","dim","java", "script","'","´","href","content-transfer-encoding","quoted-printable","content-type","subject:","bcc:","x-mailer")
newChars = strWords

for i = 0 to uBound(badChars)
newChars = replace(newChars, badChars(i), "")
next

killChars = newChars
End Function
__________________
Mc_Quake

Para ayudar en lo que se pueda:Zzz:
  #5 (permalink)  
Antiguo 11/12/2009, 15:29
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 15 años, 11 meses
Puntos: 9
Respuesta: proteger de sql injecting

vale con esto me hago una idea, gracias
  #6 (permalink)  
Antiguo 12/12/2009, 05:53
Avatar de Valery-Net  
Fecha de Ingreso: agosto-2008
Mensajes: 694
Antigüedad: 16 años, 8 meses
Puntos: 12
Respuesta: proteger de sql injecting

Bueno, yo pienso que no podemos reemplazar tantos caracteres por una cadena vacía, no puedo llegar donde el cliente y decirle: "no puedes escribir > < @ porque esos datos no te los guarda"

La solución depende de varios factores, por ejemplo, si uso SQL Server como backend entonces utilizo procedimientos almacenados y los parámetros se los paso por objectos Command

También podrías "escapar" los caracteres (en caso que la aplicación sea web), por ejemplo:

Cita:
cTxt = Replace(cTxt, "<", "&#060+;")
cTxt = Replace(cTxt, ">", "&#062+;")
cTxt = Replace(cTxt, "insert", "&#105+;&#110+;&#115+;&#101+;&#114+;&#116+;")
cTxt = Replace(cTxt, "delete", "&#100+;&#101+;&#108+;&#101+;&#116+;&#101+;")
cTxt = Replace(cTxt, "drop", "&#100+;&#114+;&#111+;&#112+;")
Quita el caracter + del código, lo agregue porque el foro reemplaza las cadenas escapadas por el resultado de la misma

El problema real está en la comilla sencilla, podrías reemplazar o de igual forma escapar lo reemplazar por dos comillas.
  #7 (permalink)  
Antiguo 13/12/2009, 10:53
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 15 años, 11 meses
Puntos: 9
Respuesta: proteger de sql injecting

muchas gracias valery-net
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:49.