Ver Mensaje Individual
  #27 (permalink)  
Antiguo 15/02/2013, 16:29
art_rockerd
 
Fecha de Ingreso: agosto-2012
Ubicación: México
Mensajes: 106
Antigüedad: 11 años, 8 meses
Puntos: 6
Respuesta: AYUDA-Inyección de Código SQL.

Mi código quedo como sigue :
Código PHP:
Ver original
  1. <?php
  2. //FUNCION RECIBE PARAMETROS DE ENTRADA
  3. function login($user,$pwd){
  4.    
  5.         // CONEXION A BDD
  6.         $host="localhost";
  7.         $userbd="root";
  8.         $pass="";
  9.         $schema="pruebas";
  10.             $mysqli = new mysqli($host,$userbd,$pass,$schema);
  11.             if (mysqli_connect_errno()) {
  12.                 printf("Fallo la conexion a la base de datos: ", mysqli_connect_error());
  13.             }
  14.                
  15.            
  16.         $consulta = "SELECT username,pass FROM users WHERE username=? and pass=?";
  17.         //PREPARAMOS LA CONSULTA
  18.         if ($sentencia = $mysqli->prepare($consulta)) {
  19.         //ENVIAMOS LOS PARAMETROS
  20.         $sentencia->bind_param('ss', $usuario, $pasword);
  21.         //ESCAPAMOS
  22.         $usuario = $mysqli->real_escape_string($user);
  23.         $pasword = $mysqli->real_escape_string($pwd);
  24.             /* ejecutar la sentencia */
  25.             $sentencia->execute();
  26.              if ($sentencia->errno) {
  27.                   echo "FAILURE!!! " . $sentencia->error();
  28.         }
  29.             /* vincular las variables de resultados */
  30.                                    
  31.             //**************************RESULTADOS EN ARRAY ASOCIATIVO*******************************/
  32.             $result = $sentencia->get_result();
  33.             if($result->num_rows <1) {echo "no se encontro usuario";
  34.                echo "<a href='logingInyection.html'>Regresar</a>";}
  35.              //fetch_assoc retorna un array asociativo con la siguiente estructura array('campo base datos'=>'valor')
  36.              /* obtener los valores */
  37.                        while($row = $result->fetch_assoc()) {
  38.                        $nameUser=$row['username'];
  39.                         $idprofile=$row['pass'];
  40.                         echo "$nameUser";
  41.                         echo "<a href='logingInyection.html'>Regresar</a>";
  42.                        }
  43.             /**************************************************************************************/                       
  44.             /* cerrar la sentencia */
  45.             $sentencia->close();
  46.         }else{
  47.                //inyeccion
  48.        }
  49.        mysqli_close($mysqli);//cerramos la conexion
  50. }
  51.  
  52.  
  53. //recibimos parametros
  54. if(trim($_POST["username"])!= ""&& trim($_POST["pass"])!= "")  
  55.     {
  56.         //recibo las variables y las sanitizo con la funcin Securityu
  57.         $user = $_POST["username"];  
  58.         $pass = $_POST["pass"];
  59.         $pwd=sha1($pass);
  60.         login($user,$pwd);
  61.     }else{
  62.         echo "Algun campo esta vacio<br>
  63.         <a href='logingInyection.html'>Regresar</a>";
  64.     }  
  65.  
  66.  
  67. ?>