Foros del Web » Programando para Internet » PHP »

problema con sesiones

Estas en el tema de problema con sesiones en el foro de PHP en Foros del Web. ola compañeros foristas, tengo un gran problema resulta que para mi universidad necesito crear una aplicacion web pero se le a puesto al profe que ...
  #1 (permalink)  
Antiguo 15/05/2010, 09:07
Avatar de leo_rock  
Fecha de Ingreso: abril-2010
Mensajes: 28
Antigüedad: 9 años, 8 meses
Puntos: 0
problema con sesiones

ola compañeros foristas, tengo un gran problema resulta que para mi universidad necesito crear una aplicacion web pero se le a puesto al profe que tiene k ser segura y confiable con respecto a la congruencia. e implementado un sistema basico de sesiones, que permite cuando entra alguien no logeado rediccionarlo a la pagina principal. Pero el problema fue cuando el profe llego a probar mi sistema encontro los siguientes puntos flacos :
1) inicio la pagina de login y se pudo logear de nuevo con el mismo user que estaba ocupando en otro navegador.
2) cuando se encontraba una secion activa podia copiar url y entrar a distintas partes del sistema
3) si cerraba el navegador y lo volvia a abrir copiaba un url y podia entrar sin problemas

bueno eso e buscado bastante y no logro encontrar mas alla de la valicion basica, yo e agregado algunas cosas pero esos puntos no los e podido superar.
ojala alguien me eche una mano, orientacion, manual o lo que sea xD
gracias
  #2 (permalink)  
Antiguo 15/05/2010, 11:04
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 6 meses
Puntos: 1517
Respuesta: problema con sesiones

La idea de las sesiones es que siempre las corrobores en todas las páginas. En otras palabras, todas las páginas tienes que haber declarado algo así
Código PHP:
Ver original
  1. <?php
  2. if(!isset($_SESSION['nombreDeLaSesion'])){
  3.   header('Location: index.php');
  4.   exit;
  5. }
Bueno contestando por puntos.
1. Cuando te refieres otro navegador (para estar seguro), ¿te refieres a que por ejemplo abrió con Firefox la primera vez y luego con opera la segunda y se pudo loguear? Si es así, entonces no estás haciendo correctamente la verificación. Porque es imposible que un navegador totalmente distinto pueda ver el SID que se creo en otro navegador.

2. Esta no la entendí bien. Tendrías que replantearla mejor.

3. Ahí debes verificar la configuración del php.ini. En la directiva que dice session.cookie_lifetime y colocar un valor 0. Si lo deseas también puedes en todos los archivos de php, colocar una línea adicional para configurar ese valor así cuando pruebes en diferentes computadoras no tengas que cambiar el valor del php.ini. Eso lo puedes lograr de dos formas.
Código PHP:
Ver original
  1. <?php
  2. ini_set('session.cookie_lifetime', 0);
o
Estos dos ejemplos deben ir en todas las páginas.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 15/05/2010, 13:16
Avatar de leo_rock  
Fecha de Ingreso: abril-2010
Mensajes: 28
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: problema con sesiones

gracias por lo del ini_set habia leido que se tenia que configurar el php.ini pero no lo podia aser asi pk el sistema tiene k estar diseñado para red.
con lo del punto dos
me referia a que el usuario se logea, y luego por ejemplo abre otra pestaña y copia una url y puede entrar sin problemas.
pero ia lo solucione agregando a la parte de verificacion un tipo de usuario asi solamente puede ver lo que permite su perfil.

con respecto al punto 1 sigo con la duda.
Lo que sucede es que una vez que el usuario esta logeado.......
y abre otro navegador o broser (mozila a IE) esta la cuenta utilizada en el primero
puede logearse denuevo con el mismo login en el nuevo navegador de modo que la sesion esta funcionando en dos partes diferente.
Necesito aser una validacion onda como mesinger que cuando se inicia otra con el mismo usuario me envie una alerta y bloquee una de las dos.
lo intente asiendolo con una tabla en la base de datos en la que inserto los usuarios conectados y los elimino cuando cierran sesion( sesion_destroy()). el problema es que cuando cierran la ventana del navegador no destruye la sesion por lo que cuando vuelve a tratar de ingresar ya esta en la base de datos y queda bloqueado.
como se podria solucionar eso.
hay un evento que al abandonar la ventana se activa pero el problema es k al redireccionar = se activa, u.u
  #4 (permalink)  
Antiguo 15/05/2010, 13:24
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 6 meses
Puntos: 1517
Respuesta: problema con sesiones

Te repito, si el sistema estas usando session_start al principio de cada documento, no es posible ver el contenido desde otro navegador porque los SID se graban en el cache del navegador que está usando el usuario y otro navegador no puede ver ese cache para poder conectarse. Lo más probable es que no estás haciendo la verificación correcta o estás almacenando la información en otra parte o verificando solamente el IP o algo estás haciendo que permite la conexión nuevamente desde otro navegador.

Ahora, ¿cómo hacer para que se borre la sesión cuando cierran el navegador?. Como te comenté, indicando el session.cookie_lifetime en 0. Mira está información para que tengas idea http://www.php.net/manual/en/session...ookie-lifetime
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 15/05/2010, 13:29
Avatar de leo_rock  
Fecha de Ingreso: abril-2010
Mensajes: 28
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: problema con sesiones

Cita:
Iniciado por abimaelrc Ver Mensaje
Te repito, si el sistema estas usando session_start al principio de cada documento, no es posible ver el contenido desde otro navegador porque los SID se graban en el cache del navegador que está usando el usuario y otro navegador no puede ver ese cache para poder conectarse. Lo más probable es que no estás haciendo la verificación correcta o estás almacenando la información en otra parte o verificando solamente el IP o algo estás haciendo que permite la conexión nuevamente desde otro navegador.

Ahora, ¿cómo hacer para que se borre la sesión cuando cierran el navegador?. Como te comenté, indicando el session.cookie_lifetime en 0. Mira está información para que tengas idea [url]http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-lifetime[/url]
el problema no es que vea la informacion que esta en el otro navegador eso esta claro, no se si me explique bn lo que pasa es que el usuario puede iniciar la sesion , a sabiendas en los partes diferes, con respecto a lo de cerrar sesion al cerrar el navegador gracias, voi a segir leyendo pero esta rebueno eso gracias denuevo

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




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