Foros del Web » Programando para Internet » PHP »

Seguridad en Sesiones - Recomendaciones y preguntas

Estas en el tema de Seguridad en Sesiones - Recomendaciones y preguntas en el foro de PHP en Foros del Web. Buenas...estoy desarrollando un sitio en el cual utilizo sesiones y quiero q cuando un usuario se loguea, registre sus datos, pero si luego se cambia ...
  #1 (permalink)  
Antiguo 29/03/2005, 09:17
 
Fecha de Ingreso: diciembre-2004
Mensajes: 71
Antigüedad: 13 años
Puntos: 0
Seguridad en Sesiones - Recomendaciones y preguntas

Buenas...estoy desarrollando un sitio en el cual utilizo sesiones y quiero q cuando un usuario se loguea, registre sus datos, pero si luego se cambia de maquina, y se vuelve a loguear, quiero q se destruya la 1ª sesion y se cree la 2ª. Estuve pensando y existen varios métodos para chequear si ese usuario tiene la sesion abierta, como ser, guardar la info en la bd, el archivos de texto, o en vbles de tipo session. La pregunta es: q me recomiendan?. La 2ª pregunta es (esta si q no tengo idea de como encarar): si el usuario cierra el navegador, y lo vuelve a abrir en el sitio, quiero q no aparezca mas como logueado, osea, q se tiene q loguear nuevamente. Y la última: quiero q me expliquen como hago para q la sesion dure X minutos en PHP 5.x, ya q no me anda. Bueno, desde ya, muchas gracias !!
  #2 (permalink)  
Antiguo 29/03/2005, 10:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Sobre el tema de gestionar temas de "concurrencia" (el hecho de que una "cuenta" de usuario no se simultánemante en más de un cliente ...), en principio debes usar algún campo de tu BD (o donde gestiones tus usuarios) a modo de "flag" para guardar un "1" o "0" para identificar que esa "cuenta" ya se hizo login .. a su vez cuando salga del sistema cambiar ese campo "flag" a 0 para liberar dicha cuenta. Eso sería todo si el usuario saliese bien del sistema (por donde se le indique) .. pero como esto no suele suceder siempre (un usuario puede "abandonar" el sistema sin salir correctamente ..) lo que se suele hacer es gestionar ese "flag" (campo) tipo fecha, registrando la fecha de ingreso y considerando un tiempo como de "inactividad" para identifiar a un usuario que no ha interactuado con el sistema en cierto tiempo (por ende a cada "movimiento" de página/script se ha de ir actualizando dicho campo con la fecha actual).

En este caso .. no se trataría de "sacar" del sistema al usuario/cuenta que hizo login en por primera vez por el segundo .. sino de no permitir el acceso a esa cuenta hasta que el usuario 1 no salga del sistema o pase el tiempo que se considere como inactividad. Bajo ese "flag" puedes dar el aviso y controlar para hacer el login o no pues ese es el campo que revisarías al hacer nuevo "login" en el sistema considerando fechas actuales y la que estimes oportuno como "inactivo".

Mas o menos es la misma técnica que usan los sistemas de control de "usuarios activos" (ejemplo tienes en las FAQ's de este foro PHP) para calcular quien se considera que está en el sistema y quien no (de tus usuarios).


El tema de la duración de la sesión .. en principio lo define la directiva session.gc_maxtimelife (de tu PHP.ini) pero vá directamente ligado a como propagues el SID (Identificador Único de sesión) pues se puede hacer por cookies o por el URL .. Si lo haces por cookies, el valor de expiración de esta tambien influye en dicho tiempo máximo de duración de una sesión.

No sé si estás confundiendo las sesiones (www.php.net/session) con cookies .. pero no es lo mismo. Las sesiones estan diseñadas para manterner datos por el transcurso de páginas que mueves de un sitio consecutivamente .. No como una cookie que se usa para mantener información para tu "sitio" siempre y cuando entres desde ese mismo PC/navegador pese que entres y salgas del mismo. (independiente de donde físicamente se guarde la información en sí de una cookie/sessión).

Cita:
si el usuario cierra el navegador, y lo vuelve a abrir en el sitio, quiero q no aparezca mas como logueado
Si trabajas con sesiones, propagando el SID en cookies (con tiempo de expiración de estas 0) .. si cierras todas las ventanas del navegador de tu sitio .. no deberías de retomar la sesión nuevamente ("logueado") pues el SID muere con la cookie (no la sesión pues lo define session.gc_maxtimelife) pero si el "enlace" o "vinculo" entre ese "cliente" y el archivo de sesión creado en el servidor.


Un saludo,
  #3 (permalink)  
Antiguo 08/04/2005, 11:14
Avatar de waltermg  
Fecha de Ingreso: agosto-2003
Ubicación: temuco chile
Mensajes: 72
Antigüedad: 14 años, 4 meses
Puntos: 0
El tema de la duración de la sesión .. en principio lo define la directiva session.gc

hola he visto esto en el foro

El tema de la duración de la sesión .. en principio lo define la directiva session.gc_maxtimelife (de tu PHP.ini) pero vá directamente ligado a como propagues el SID (Identificador Único de sesión) pues se puede hacer por cookies o por el URL .. Si lo haces por cookies, el valor de expiración de esta tambien influye en dicho tiempo máximo de duración de una sesión.


tengo una duda en mi php, estoy en mi base de datos, en el archivo nuke_session el valor time me sale como : 1112976407 porque valor debo cambiarlo para que las cookies de cada sesion se cierren a los 30 minutos,

porque es una web de un colegio y los alumnos entrar y salen y algunos se les olvida cerrar correctamente su cesion..

saludos

y gracias desde ya.
walter,
villarrica sur de chile.
__________________
:si: Walter Manriquez Temuco Chile
email: [email protected]

http://www.campotemuco.tk
http://www.radiosur.tk
http://www.webchile.tk

:risa:
  #4 (permalink)  
Antiguo 08/04/2005, 13:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues .. realmente no tiene nada que ver ese "nuke_sesion" que es una variable de una aplicación concreta y que puede ser manejado por cookies/sesiones .. u otros métodos con el tema que se habló aquí mismo ..

"supongo" que seran segundos ese valor? ... Pero donde debes preguntarlo es en un tema nuevo y en el foro adecuado .. al cual ya moví una pregunta tuya sobre esto mismo:

http://www.forosdelweb.com/f54/donde-bajo-bloque-modulo-para-que-las-cookies-borren-despues-30-minutos-286972/


Un saludo,
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 (incluyéndote)




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