¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.
contador de visitas
» Visual Basic 6.0 para 32 y 64 bits
Inyeccion SQL EmptyMar Dic 11, 2012 10:52 pm por Joao Paulo C

» XP x 64 bits completo 1 link
Inyeccion SQL EmptyJue Nov 29, 2012 11:00 pm por luisbario

» "Cala Boca"
Inyeccion SQL EmptyJue Jul 05, 2012 12:57 pm por Administrador

» CORINTHIANS 2 - BOCA 0
Inyeccion SQL EmptyJue Jul 05, 2012 12:51 pm por Administrador

» Madotate_2.02.02(dar vista 3d vista a xp)
Inyeccion SQL EmptyMiér Jul 04, 2012 11:11 pm por Administrador

» Desktop Icon Toy
Inyeccion SQL EmptyMiér Jul 04, 2012 10:58 pm por Administrador

» Pack efectos
Inyeccion SQL EmptyMar Jul 03, 2012 11:19 am por Administrador

» Ejemplo de un video
Inyeccion SQL EmptyMar Jul 03, 2012 9:06 am por Administrador

» 10 posibles síntomas para saber si tu PC está infectado
Inyeccion SQL EmptyMar Jul 03, 2012 9:02 am por Administrador

» Cambiar la dirección IP de un equipo de estática a dinámica y viceversa
Inyeccion SQL EmptyMar Jul 03, 2012 8:59 am por Administrador


    Inyeccion SQL

    Administrador
    Administrador
    Admin
    Admin


    Sexo : Femenino
    Mensajes : 335

    Puntos : 19578
    Reputación : 2
    Fecha de inscripción : 09/04/2012
    Localización Localización : Argentina

    Seguridad Inyeccion SQL

    Mensaje por Administrador Vie Jun 08, 2012 3:15 pm

    Se dice que existe o se produjo una inyección SQL cuando, de alguna manera, se inserta o "inyecta" código SQL invasor dentro del código SQL programado, a fin de alterar el funcionamiento normal del programa y lograr así que se ejecute la porción de código "invasor" incrustado, en la base de datos.
    Este tipo de intrusión normalmente es de carácter malicioso, dañino o espía, por tanto es un problema de seguridad informática, y debe ser tomado en cuenta por el programador de la aplicación para poder prevenirlo. Un programa elaborado con descuido, displicencia o con ignorancia del problema, podrá resultar ser vulnerable, y la seguridad del sistema (base de datos) podrá quedar eventualmente comprometida.
    La intrusión ocurre durante la ejecución del programa vulnerable, ya sea, en computadores de escritorio o bien en sitios Web, en éste último caso obviamente ejecutándose en el servidor que los aloja.
    La vulnerabilidad se puede producir automáticamente cuando un programa "arma descuidadamente" una sentencia SQL en tiempo de ejecución, o bien durante la fase de desarrollo, cuando el programador explicita la sentencia SQL a ejecutar en forma desprotegida. En cualquier caso, siempre que el programador necesite y haga uso de parámetros a ingresar por parte del usuario, a efectos de consultar una base de datos; ya que, justamente, dentro de los parámetros es donde se puede incorporar el código SQL intruso.
    Al ejecutarse la consulta en la base de datos, el código SQL inyectado también se ejecutará y podría hacer un sinnúmero de cosas, como insertar registros, modificar o eliminar datos, autorizar accesos e, incluso, ejecutar otro tipo de código malicioso en el computador.
    Por ejemplo, asumiendo que el siguiente código reside en una aplicación web y que existe un parámetro "nombreUsuario" que contiene el nombre de usuario a consultar, una inyección SQL se podría provocar de la siguiente forma:



    El código SQL original y vulnerable es:
    consulta := "SELECT * FROM usuarios WHERE nombre = '" + nombreUsuario + "';"
    Si el operador escribe un nombre, por ejemplo "Alicia", nada anormal sucederá, la aplicación generaría una sentencia SQL similar a la siguiente, que es perfectamente correcta, en donde se seleccionarían todos los registros con el nombre "Alicia" en la base de datos:
    SELECT * FROM usuarios WHERE nombre = 'Alicia';
    Pero si un operador malintencionado escribe como nombre de usuario a consultar:
    "Alicia'; DROP TABLE usuarios; SELECT * FROM datos WHERE nombre LIKE '%"
    (sin las comillas externas), se generaría la siguiente consulta SQL, (el color verde es lo que pretende el programador, el azul es el dato, y el rojo, el código SQL inyectado):
    SELECT * FROM usuarios WHERE nombre = 'Alicia';
    DROP TABLE usuarios;
    SELECT * FROM datos WHERE nombre LIKE '%';
    En la base de datos se ejecutaría la consulta en el orden dado, se seleccionarían todos los registros con el nombre 'Alicia', se borraría la tabla 'usuarios' y finalmente se seleccionaría toda la tabla "datos", que no debería estar disponible para los usuarios web comunes.
    En resumen, cualquier dato de la base de datos puede quedar disponible para ser leído o modificado por un usuario malintencionado.
    Nótese por qué se llama "Inyección" SQL. Si se observa el código malicioso, de color rojo, se notará que está insertado en el medio del código bueno, el verde. Así, el código rojo ha sido "inyectado" dentro del verde.



    [Tienes que estar registrado y conectado para ver esa imagen]

      Fecha y hora actual: Sáb Abr 27, 2024 1:31 pm