Ver Mensaje Individual
  #5 (permalink)  
Antiguo 27/10/2014, 11:13
_vincen_
 
Fecha de Ingreso: abril-2010
Mensajes: 21
Antigüedad: 14 años
Puntos: 0
Respuesta: Seguridad login con Cookies y API

Cita:
Iniciado por loncho_rojas Ver Mensaje
Pues si cada 30 min muere una variable de $_SESSION algo no está bien. Lo normal es que muera la Cookie, hay métodos para mantener una SESSION activa... revisa [URL="http://www.grabthiscode.com/programacion/como-hacer-un-registro-y-login-php-con-sesiones-y-cookies/"]esto[/URL]
He revisado lo que me has pasado, este el codigo:

Código PHP:
function login ($user,$pass,$recordarme)
{
    
$user mysql_escape_string($user);
    
$pass mysql_escape_string($pass);
    
    if(
strlen($user)<|| strlen($pass)<4) return -3;
    
    global 
$salt;
    
$pass sha1($salt.md5($pass));
    
    
$conexion=mysql_connect("localhost","root","pass",false);
    
$bd mysql_select_db("login",$conexion);
    
mysql_query("SET NAMES 'utf8'");
    
    
$sql "select idUsuario from usuario where UPPER(login)='".strtoupper($user)."' and pass='".$pass."'";
    
$result mysql_query($sql,$conexion);
    if(
mysql_affected_rows()<=|| !$result) return -1//user repetido

//////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////

// Aqui, hace lo que yo hacia con $_SESSION, y si quieres que dure más tiempo hay un if para crear la cookie 


    
    
$row mysql_fetch_array($result);
    
$idUsuario $row['idUsuario'];
    
$_SESSION['usuario']=$idUsuario;
    
    if(
$recordarme){
        global 
$saltCookie;

        
$cookie sha1($saltCookie.md5($idUsuario.date("Y-d-m h:i:s")));

        
$sql2 "update usuario set cookie='".$cookie."',validez=DATE_ADD(now(),INTERVAL 6 MINUTE) where `idUsuario`='".$idUsuario."'";
        
$result2 mysql_query($sql2,$conexion);

        
setCookie("identificado",$cookie,time()+360,'/'); //cookie 6min
    
}
    
$_SESSION['usuario']=$idUsuario;
    
    return 
true;

Hace exactamente lo que quiero hacer yo, para que dure más la sesión hace uso de cookies. Ahí si no me equivoco no hay nada de alargar el tiempo de $_SESSION.

Encripta un par de campos y ya esta, pero si se copia la cookie a otro pc por lo que veo no tiene seguridad y estarias logueado en la web.