Foros del Web » Programando para Internet » PHP »

Gestión de Sesiones (Teoríco)

Estas en el tema de Gestión de Sesiones (Teoríco) en el foro de PHP en Foros del Web. No he usado las sesiones pero tengo los conceptos mas o menos claros Session_start(); $_SESSION[] para guardar el valor de la sesión o valores que ...
  #1 (permalink)  
Antiguo 20/01/2010, 04:59
 
Fecha de Ingreso: mayo-2005
Mensajes: 423
Antigüedad: 18 años, 11 meses
Puntos: 1
Gestión de Sesiones (Teoríco)

No he usado las sesiones pero tengo los conceptos mas o menos claros
Session_start();
$_SESSION[] para guardar el valor de la sesión o valores que queremos guardar.

Antes de nada no quiero guardar sesiones de manera permanente.

He pensado en crear una base de datos que guarde, el usuario, la contraseña, y una passphrase que sea una combinación del usuario y la contraseña y si el usuario está logueado o no en el sistema.

Mi idea es la siguiente

Parte publica y parte privada

En la parte publica, no tengo en cuenta las sesiones.

En el login, a parte de verificar si el usuario está registrado o no, asigno a los valores del array de sessión diferentes.

en las diferentes páginas privadas, mi idea es verificar si estos usuarios son correctos consultandolos a la base de datos los datos que son enviados en el array $_SESSION.

¿conceptos erroneos? ¿Recomendaciones?

un saludo y muchas gracias
__________________
Dios creo un equipo perfecto a los demas los lleno de extranjeros
  #2 (permalink)  
Antiguo 20/01/2010, 05:13
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Gestión de Sesiones (Teoríco)

¿guardar en la base de datos si el usuario esta logueado o no? creo que tienes algun concepto equivocado......

En la base de datos, con tener login y pass es suficiente. En el momento que un usuario se loguea correctamente, es cuando haces:

session_register("usuario");$_SESSION['usuario']=$row["USER"];

...donde $row["USER"] es el nombre de usuario que ha logueado y hemos buscado en la base de datos con un mysql_query y tal.......

Luego en las partes que quieras que sean privadas solo tienes que meterlas dentro de un:

if (isset($_SESSION['usuario'])) {
// codigo
}


Las variables de sesion pueden configurarse para que duren cierto tiempo, pero generalmente en el php.ini viene por defecto configurado para que si el usuario cierra su navegador las variables de sesion pertenecientes a dicho usuario se borran.

Recuerdo para ti o alguien mas que pueda servirle esto que las variables de sesion se crean y se guardan en el propio servidor, no son como las cookies, son totalmente seguras, el usuario no puede crear a su antojo $_SESSION['usuario'] de ninguna forma (obviamente hay algunos sistemas de injeccion SQL que deberias saber)

Espero que te sirva, saludosssss
  #3 (permalink)  
Antiguo 20/01/2010, 05:44
 
Fecha de Ingreso: mayo-2005
Mensajes: 423
Antigüedad: 18 años, 11 meses
Puntos: 1
Respuesta: Gestión de Sesiones (Teoríco)

Perfecto, aclarado los terminos.

Voy a revisar mi php.ini para trabajar con ello.

un saludo
__________________
Dios creo un equipo perfecto a los demas los lleno de extranjeros
  #4 (permalink)  
Antiguo 20/01/2010, 13:30
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Gestión de Sesiones (Teoríco)

Guay, cualquier cosa sobre esto pregunta aqui, me suscribi al tema, asi me avisa cuando escribas

saludossss
  #5 (permalink)  
Antiguo 22/01/2010, 05:17
 
Fecha de Ingreso: mayo-2005
Mensajes: 423
Antigüedad: 18 años, 11 meses
Puntos: 1
Respuesta: Gestión de Sesiones (Teoríco)

Ya he empezado a trabajar con ello, una vez el usuario manda los datos de loguin y tras validarlos

Código HTML:
session_register('nombre');
    $_SESSION['nombre'] = $izena;
    session_write_close();
    header("Location:login.php?ok=1");
Entiendo que tengo que abrir la sesion en aquellas paginas privadas.

y comparar si

Código HTML:
if(isset($_SESSION['usuario'])){
  verificar que el usuario en la variable session exista en la base de datos
mostrar menus que puede visualizar.
}
¿cómo cierro sesion tras log-off del usuario?
__________________
Dios creo un equipo perfecto a los demas los lleno de extranjeros
  #6 (permalink)  
Antiguo 22/01/2010, 09:59
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Gestión de Sesiones (Teoríco)

No!, no tienes que volver a verificar nada, si entra aqui:

if (isset($_SESSION['usuario'])){
// codigo
}


Es que tenemos un usuario correctamente logueado, ya olvidate de la pass.
  #7 (permalink)  
Antiguo 22/01/2010, 10:03
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: Gestión de Sesiones (Teoríco)

cuando el usuario pulsa el boton "salir", basta con que uses:

Código PHP:
Ver original
  1. unset($_SESSION);
  #8 (permalink)  
Antiguo 22/01/2010, 10:36
 
Fecha de Ingreso: mayo-2005
Mensajes: 423
Antigüedad: 18 años, 11 meses
Puntos: 1
Respuesta: Gestión de Sesiones (Teoríco)

Cita:
Iniciado por Vun Ver Mensaje
No!, no tienes que volver a verificar nada, si entra aqui:

if (isset($_SESSION['usuario'])){
// codigo
}


Es que tenemos un usuario correctamente logueado, ya olvidate de la pass.
¿hay posibilidades que esa variable sea alterada externamente?

un saludo

PD: paynalton, gracias
__________________
Dios creo un equipo perfecto a los demas los lleno de extranjeros
  #9 (permalink)  
Antiguo 22/01/2010, 11:12
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: Gestión de Sesiones (Teoríco)

Las variables de sesion no se pueden alterar fuera del servidor, sin embargo hay manera de burlar la seguridad.

Cuando usas session_start(), PHP envía al cliente una cookie con una clave de identificación que le permite recordar la sesión.

Si alguien, durante ese instante, está vigilando las comunicaciones del cliente, puede capturar la cookie, reemplazarla en su propio navegador y "fingir" ante PHP que se trata del mismo usuario... esto sería una usurpación de identidad.

estaba por mencionarte que guardar el estatus de login de un uusario en base de datos no es una idea ridícula, ya que es una de las formas para evitar el robo de sesiones si se usa junto con una cookie extra de identificación.

Por la red encontrarás muchos manuales que explican como crear "sesiones seguras en PHP"
  #10 (permalink)  
Antiguo 25/01/2010, 03:06
 
Fecha de Ingreso: mayo-2005
Mensajes: 423
Antigüedad: 18 años, 11 meses
Puntos: 1
Respuesta: Gestión de Sesiones (Teoríco)

Muchas gracias por las aclaraciones paynalton. Seguire enredado con las sesiones para darle caña al tema y mirar el tema de SSID de la cookie.

un saludo
__________________
Dios creo un equipo perfecto a los demas los lleno de extranjeros

Etiquetas: sesiones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:57.