Ver Mensaje Individual
  #6 (permalink)  
Antiguo 12/12/2009, 05:53
Avatar de Valery-Net
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.