Ver Mensaje Individual
  #4 (permalink)  
Antiguo 27/08/2013, 08:41
bathorz
 
Fecha de Ingreso: agosto-2013
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 29
Respuesta: metodo de seguridad para ingreso a web (funcionando, intencion de mejorar

La misión de limpiar() no es validar, sino evitar en lo posible ataques de inyección sql a través del formulario.

Ejemplo:
Código PHP:
Ver original
  1. // En un select tipo
  2. $sql = "SELECT * FROM users WHERE user='".$_POST['user']."' AND password='".$_POST ['password']."';";
  3.  
  4. // Si:
  5. $_POST['user'] = ' usuario';
  6. $_POST['password'] = "' OR ''='";
  7.  
  8. // Conexión BBDD
  9. conectadb('test');
  10.  
  11. // Sin protección el pass equivale a: nada es igual a nada, da acceso al sistema:
  12. $sql = "SELECT * FROM users WHERE user='usuario' AND password='' OR ''='';";
  13.  
  14. // Con función
  15. limpiar();
  16. $sql = "SELECT * FROM users WHERE user='usuario' AND password='\' OR \'\'=\'';";
  17. // Rdo: password=\"\' OR \'\'=\'\"

// !!Tiene que haber una conexión con la BBDD antes de usar mysql_real_escape_string() o limpia totalmente:
Código PHP:
Ver original
  1. $sql = "SELECT * FROM users WHERE user='' AND password='';";


!== 1 Significa que no es igual a 1, no es true, en fin que no está logeado.

El usuario envía los datos. En la función que lo valida, si todo esa bien, hay una línea:
Código PHP:
Ver original
  1. $_SESSION['Autenticado'] = 1; // lo mismo true u otra cosa.

Ya tienes uno:
Código PHP:
Ver original
  1. if (isset($_SESSION["s_user_username"])) {// garantizo que inicio sesion