Ver Mensaje Individual
  #6 (permalink)  
Antiguo 02/02/2013, 12:11
GonzaFY
 
Fecha de Ingreso: febrero-2013
Mensajes: 33
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: Mejorar la seguridad de inyecciones SQL a sistema de registro

Cita:
Iniciado por webankenovi Ver Mensaje
en este hilo en el ultimos post he puesto funciones para encriptar la pass no uses md5 y tal ... [url]http://www.forosdelweb.com/f18/seguridad-web-1004102/[/url]



ni tu ni nadie que entre en tu sistema

- y que la password tenga minimo 10 caracteres mayusculas minusculas y numeros
De todas formas sere yo quien le asigne contraseñas a los usuarios pero esta bien porque si un ajeno entra a la base de datos me las puede robar.

Y hace un rato habia leido tu post pero tampoco soy experto en este tema y me confundo un poco con tantas cosas..

Bueno aparte de que me falta encriptar la contraseña a md5 logre esto:
Código PHP:
Ver original
  1. <?php
  2. require_once('config.php');
  3.  
  4. $username = mysqli_real_escape_string($conexion,$_POST['username']);
  5. $password = mysqli_real_escape_string($conexion,$_POST['password']);
  6.  
  7. if(isset($_POST['ingresar']))
  8. {
  9.     if(ctype_alnum($username) && ctype_alnum($password))
  10.     {
  11.         $query = mysqli_query($conexion,"SELECT * FROM usuarios WHERE nick='".$username."' and pass='".($password)."'");
  12.  
  13.         if(mysqli_num_rows($query) > 0)
  14.         {
  15.  
  16.             $datos = mysqli_fetch_assoc($query);
  17.             $_SESSION['nivel'] = $datos['nivel'];
  18.             $_SESSION['usuario'] = $datos['nick'];
  19.             echo '<script language="JavaScript">window.location.href = "index.php";</script>';
  20.         }
  21.         else
  22.         {
  23.             echo 'Usuario y contraseña incorrectos';
  24.             echo '<script language="JavaScript">window.location.href = "index.html";</script>';
  25.         }
  26.     }
  27.     else
  28.     {
  29.     echo 'Ingresa un usuario y contraseña validos';
  30.    
  31.     }
  32. }
  33.  
  34. ?>

Supongo que con eso el atacante ya no podra ingresar nada fuera de lugar a los campos.

Y mi duda de lo que lei en tu post de que sirve proteger las carpetas .htacces?

Gracias a todos, son muy amables =).


Edito:
Encontre este codigo en una pagina pero no se si ya es muy exagerado o si es que esta de mas..
Código PHP:
Ver original
  1. <?php
  2. /**
  3.  * SEGURIDAD PARA SQL INJECTION
  4.  */
  5. global $errorSQLinjection;
  6. $GLOBALS['errorSQLinjection'] = "../index.php";
  7. function _clean($var)
  8. {
  9.     if(is_array($var)) return $var;
  10.     //print_r($var);
  11.     $pattern = array("/0x27/","/%0a/","/%0A/","/%0d/","/%0D/","/0x3a/","/ select /i","/insert/i",
  12.                      "/from/i","/concat/i","/delete/i","/truncate/i","/alter /i",
  13.                      "/information_schema/i","/unhex/i","/load_file/i","/outfile/i","/0xbf27/");
  14.     $value = preg_replace($pattern, "", $var);
  15.     foreach($pattern as $patt)
  16.         if(preg_match($patt, $var))
  17.         {
  18.             header('Location: '.$GLOBALS['errorSQLinjection']);
  19.         }
  20.     return $value;
  21. }
  22.  
  23. if(isset($_GET))
  24. {
  25.     foreach($_GET as $k => $v)
  26.     {
  27.         $_GET[$k] = _clean($v);
  28.     }
  29. }
  30. if(isset($_POST))
  31. {
  32.    
  33.     foreach($_POST as $k => $v)
  34.     {
  35.         $_POST[$k] = _clean($v);
  36.     }
  37. }
  38. /**
  39.  *
  40.  */
  41. ?>

Última edición por GonzaFY; 02/02/2013 a las 12:17