none
Reemplazar comilla simple por caracter html

    Question

  • Hola, les escribo porque tengo un problema que no puedo solucionar...
    El tema es que tengo una página aspx la cuál tiene varios textboxes y datos a ingresar en una consulta mysql... lo que yo hago antes de ingresar todos los datos, es a todos los strings que tengo, les hago lo siguiente:
    public string sqlInjection(string text)
        {
            if(text.IndexOf("'") > -1)
            {
                text.Replace("'", @"'");
            }
            return text;
        }
    el cuál me debería cambiar en el string que encuentre las comillas simples, por el "'", pero no lo hace, por ejemplo.. tengo éste texto a ingresar :
    "Alla cara mamma, Tanti auguri nel tuo giorno. Anche se non posso essere oggi li', il mio cuore e pensiero sono sempre con te, e questa piantina che dovrai curare ogni giorni spero ti faccia ricordare che ti sono vicina anche se abito cosi' lontano e tutti i giorni ti penso. Ti vogliamo tanto bene tutti i tuoi 4 figli, sempre Rita" y supuestamente me debería cambiar las comillas que éste tiene (por ejemplo en la palabra "cosi'", pero no lo hace... que estoy haciendo mal?

    De solucionar ésto.. está bien lo que estoy haciendo para prevenir el sql injection o debería hacer algo mejor?.. quiero aclarar que los datos en sql los estoy ingresando con parámetros.. del tipo @param en los comandos.

    Espero me puedan ayudar, gracias!
    Tuesday, May 12, 2009 9:05 PM

All replies

  • Hola Gonzalo, dos cosillas. Si utilizas parámetros ya estas evitando la inyección, porque valida el tipo de cada parámetro.

    Pero igualmente no estas utilizando correctamente el Replace. El Replace devuelve el texto modificado no modifica el que le pasas como parámetro.

    Ejemplo:

    text = text.Replace("'", @"'");
    
    
    Saludos.




    Si la respuesta ha sido de utilidad marca la como respuesta correcta.

    Marc Rubiño
    Web: http://lonetcamp.com
    Blog: http://geeks.ms/blogs/mrubino
    Wednesday, May 13, 2009 7:24 AM
  • Hola Gonzalo, solo tendrias que cambiar las comillas simples por dos comillas siimples... y listo te hace la insercion sin ningun problema: ' por '' (son dos comillas simples, mas no una comilla doble)
    HADT
    Tuesday, May 26, 2009 2:52 PM
  • Pues no veo el problema siempre y cuando se utilicen sentencias SQL Parametrizadas o Store Procedures para insertar y a parte el uso de HtmlEncode:

    http://msdn.microsoft.com/en-us/library/axh0xdh1.aspx

    Salu2
    http://geeks.ms/blogs/lruiz - MADNUG Member - Spenta Consulting .: MCP -MCTS :.
    Friday, May 29, 2009 6:47 AM