| Casa | Hardware | Redes | Programación | software | Criticar | Sistemas |   
Programación  
  • C /C + + Programming

  • Lenguajes De Programación

  • Delphi Programación

  • Programación Java

  • JavaScript Programación

  • Programación PHP /MySQL

  • Perl Programming

  • Python Programming

  • Rubí Programación

  • Visual Basics Programación
  •  
    Conocimientos Informáticos >> Programación >> Programación PHP /MySQL >> Content
    MySQL Tutorial de inyección
    inyección MySQL es acto de insertar declaración de MySQL en una base de datos sin el conocimiento del propietario de la base de datos . Esto se hace generalmente mediante la explotación de campos de entrada de usuario que no están protegidos adecuadamente. En lugar de proporcionar la entrada real de que el propietario de la base de datos se ha solicitado , el usuario inyecta una declaración de MySQL que cambia el comportamiento de la consulta para dar al usuario la capacidad de inyectar para manipular la base de datos . MySQL inyecciones

    La forma más fácil de entender y aprender lo que la inyección MySQL realmente doesis echar un vistazo a un ejemplo . Una de las formas populares de la utilización de MySQLinjections es para eludir los controles de inicio de sesión en los sitios web . He aquí un ejemplo de awebsite que está utilizando el siguiente formulario para autenticar al usuario :

    Login : < input type = "text" name = " nombre de usuario" > Lozinka : < /form>

    Después de pulsar enviar datos introducidos se envía al userlogin.php página que recibe y ejecuta a través de una consulta en la base de datos para comprobar el nivel de acceso de los usuarios y ha si ha entrado el nombre de usuario y contraseña correctos.

    < ? $ username = $ _POST [ 'username' ] , $ password = $ _POST [' password' ] , $ query = " SELECT nombre de usuario , contraseña FROM usuarios WHERE username = '$ nombre de usuario" y la contraseña =' $ password ' " ; ? >

    Este tipo de formulario de acceso está abierto a la explotación de los ataques de inyección de MySQL . Para acceder a la página web de cualquier usuario puede introducir el siguiente código: 'OR 1 = 1 - el nombre de usuario y' OR 1 = 1 para la contraseña

    Query ahora se verá así : $ query = " SELECT nombre de usuario . , contraseña de los usuarios DONDE username = '' OR1 = 1 - ' y password = '' OR 1 = 1 " ;

    Esta consulta seleccionará nombre de usuario y contraseña de los usuarios en que no existen nombres de usuario o contraseñas ( '' parte ) o si uno es igual a uno . Como uno es igual a uno en todos los casos se ve comprometida la seguridad de la base de datos . Se añadieron dos guiones antes apóstrofe que MySQL ignore apóstrofe que ahora es redundante. Esto es sólo un tipo de ataque mediante inyección MySQL. Otra variante de este ataque es GetAccess a más información que el usuario tiene permitido .

    Ahora mira un ejemplo en el propietario de la base está utilizando siguiente queryto obtener datos para mostrar en las páginas de información de cuenta de usuario .
    < P > $ query = "SELECT * FROM usuarios WHERE username = '$ nombre ' " ;

    Si este tipo de consulta no está protegido usuario malintencionado puede input'OR 1 = 1 - para eludir comprobar nombre de usuario. $ query = "SELECT * FROM usuarios WHERE nombre de usuario ='' OR 1 = 1 - ' " , . Esta consulta ahora no seleccionar sólo los datos de los usuarios , pero los datos de todos los usuarios en la tabla "usuarios"
    < br >
    Protección contra MySQL inyecciones

    Hay muchas maneras de protegerse contra las inyecciones de MySQL. De hecho inyecciones de MySQL son amenazas sólo si el desarrollador ha ignorado la amenaza y han fracasado en la protección de su código. La manera más fácil de protegerse contra inyecciones en combinación PHP y MySQL es utilizar la función de PHP: " mysql_real_escape_string "

    Volviendo al primer ejemplo <$ username = $ _POST [ 'username' ] ; $ . . ? password = $ _POST [' password' ] , $ query = " SELECT nombre de usuario , contraseña FROM usuarios WHERE username = '$ nombre de usuario" y la contraseña =' $ password ' " ; ? >

    Para protegerse contra las inyecciones de MySQL utilización directa de las entradas del usuario deben befiltered través de " mysql_real_escape_string " . Función " mysql_real_escape_string " se escape todos los caracteres especiales MySQL eliminación de la posibilidad de cambiar el comportamiento de nuestra consulta

    <$ username = mysql_real_escape_string ($ _POST [ 'username' ] ) ; . ? $ Password = mysql_real_escape_string ($ _POST [ ,"' password' ] ) ; $ query = " SELECT nombre de usuario , contraseña FROM usuarios WHERE username = '$ nombre de usuario" y la contraseña =' $ password ' " ; ? >


    Previous :

    next :
      Artículos relacionados
    ·Cómo conectar dos formas a través de PHP 
    ·Tutorial para MySQL REGEXP 
    ·Cómo comprobar la versión de MySQL Scripts de cliente…
    ·Las funciones PHP Dump jabón 
    ·Escuela PHP Proyectos 
    ·Cómo crear una lista desplegable Usar XML y AJAX en PH…
    ·Cómo desactivar el informe de errores de PHP 
    ·Cómo extender la longitud de VARCHAR en MySQL 
    ·Cómo anular la configuración de un elemento de una ma…
    ·Cómo leer un archivo en PHP 
      Artículos destacados
    ·Cómo personalizar ValidationSummary 
    ·Cómo hacer un fundido RadGrid en una Animación 
    ·Cómo convertir la latitud y longitud de Decimal en PHP…
    ·Cómo eliminar todas las referencias en un proyecto de …
    ·Cómo utilizar registros de acceso en una Consulta 
    ·Cómo reemplazar minúsculas con capiteles en Java 
    ·Cómo mostrar una imagen en el Grid View 
    ·Cómo importar un applet de Java 
    ·Cómo ocultar los DIVs Open in JavaScript 
    ·¿Cómo deshacerse de los soportes en Python Matriz 
    Copyright © Conocimientos Informáticos http://ordenador.wingwit.com