Inject SQL?

01/12/2006 - 00:34 por Daniel | Informe spam
Hola a todos,

Quería saber como puedo hacer para poder hacer un update con la siguiente
string:

UPDATE notas SET notas.titulo = 'script', notas.nota = ¡¡aquí viene la
string!!:

'strComputer = "."
Set objWMIService = GetObject("winmgmts:" & _
"{impersonationLevel=Impersonate}!\\" & strComputer & "oot\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Product WHERE
Caption LIKE 'Microsoft Office%'")
For Each objItem in colItems
Wscript.Echo objItem.Name
Wscript.Echo objItem.Version
'Wscript.Echo objItem.IdentifyingNumber
'objItem.Uninstall() 'Desinstala el programa
Next' WHERE id_nota s"

¡¡Alquien sabe como realizar el update o el insert. El problema es que no
parece ser que lo interpresta como un inject sql. ¿Hay alguna solución
cómoda?

Muchas gracias.
 

Leer las respuestas

#1 Daniel
01/12/2006 - 18:00 | Informe spam
Quería saber como puedo hacer para poder hacer un update con la siguiente
string:

UPDATE notas SET notas.titulo = 'script', notas.nota = ¡¡aquí viene la
string!!:
[string que contiene comillas]

¡¡Alquien sabe como realizar el update o el insert. El problema es que no
parece ser que lo interpresta como un inject sql. ¿Hay alguna solución
cómoda?



Una solución es reemplazar en el string todas las ocurrencias de una
comilla (') por repeticiones de la comilla (''). Pero es preferible
parametrizar la sentencia y asignar la cadena al parámetro, y dejar que
sea la infraestructura de ado.net la que realice todas las sustituciones
que sean necesarias:

Dim sentencia as String = "UPDATE notas SET notas.titulo = 'script',
notas.nota =@cadena"
Dim cmd as New SqlCommand(sentencia, conexion)
cmd.Parameters.Add("@cadena", "Aqui viene tu string")
cmd.ExecuteNonQuery()






Gracias Alberto. Veo que la manera que me dices de parametrizar es bastante
sencilla, pero el problema lo tengo en el cmd.Parameters.Add("@cadena",
"Aqui viene tu string"), ya que en el segundo parámetro que le paso, el
método Add no me acepta un string.

Si me equivoco dímelo. Gracias.

Preguntas similares