Foros del Web » Programando para Internet » PHP »

seguridad en sistema de sesiones...

Estas en el tema de seguridad en sistema de sesiones... en el foro de PHP en Foros del Web. Buenas, qué dice la gente del foro? Hey, tengo una idea y no se cómo llevarla a cabo, la cosa es así, quiero hacer un ...
  #1 (permalink)  
Antiguo 30/03/2003, 13:26
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 15 años, 6 meses
Puntos: 0
seguridad en sistema de sesiones...

Buenas, qué dice la gente del foro?

Hey, tengo una idea y no se cómo llevarla a cabo, la cosa es así, quiero hacer un código en javascript junto con php, para que cuando un usuario cierre la ventana de alguno de los sistemas que hay en la página se eliminen las sesiones del mismo.

La idea base es esta:

Código PHP:
<script>
on page.down {
<?
session_destroy
();
?>
}
</script>
espero que se entienda cuál es la idea más o menos...

Cabe aclararse que existe un salir.php, en el que se borran las sesiones, pero, ahora, que pasa si no se cierra la sesión desde salir.php y el usuario se olvida y abre otras páginas y después se va... todo esto en un cyber por ejemplo... es un PELIGRO!!! entra otro y... ahí te quiero ver... jaja

Pongo este mensaje acá en PHP por las dudas de que haya otro método más efectivo como limitar las sesiones, o algo por el estilo... qué me recomiendan usar? o más bien qué usan ustedes para solucionar esto?...

bueno, gracias,
un saludo!
__________________
chapu
  #2 (permalink)  
Antiguo 30/03/2003, 13:33
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 16 años, 2 meses
Puntos: 6
limita las sesiones mediante un tiempo predeterminado si el usuario no ha cambiado de paginas no se, en un tiempo de unos 15 minutos que se elemine la sesion. es una forma de atacar el problema.
  #3 (permalink)  
Antiguo 30/03/2003, 16:56
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 15 años, 6 meses
Puntos: 0
buenas...

Hola Herminio Heredia San, cómo andás che?

Gracias por contestar el post , pero no me quedo tranquilo con esto que me decís. No me parece del todo seguro... A todo esto, vos los usas en tu sitio??? te resulta???

No sabes si hay otras alternativas??? o alguien sabe???

desde ya gracias,
__________________
chapu
  #4 (permalink)  
Antiguo 31/03/2003, 10:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Hey, tengo una idea y no se cómo llevarla a cabo, la cosa es así, quiero hacer un código en javascript junto con php, para que cuando un usuario cierre la ventana de alguno de los sistemas que hay en la página se eliminen las sesiones del mismo.
Eso mismo que pretendes lo hace PHP por si solo si usas la directiva (php.ini y si no tienes acceso directo al php.ini via función ini_set() ):

session.gc_maxlifetime = 0
junto con:
session.cache_expire = 0

Y para mas "refinamiento" ..
session.gc_probability = 1
session.gc_dividend = 100 (esto solo para PHP 4.3.0 en adelante)

(y si se usa propagación del SID en cookie:)
session.cookie_lifetime = 0

Todas estas directivas las puedes modificar en tiempo de ejecución via ini_set() por si quieres forzar la configuración del servidor donde corras esa aplicación ..

Yo lo uso así y no tengo problemas ni al usar un session_destroy() con un "salir.php" .. NI al cerrar todas las ventanas de la aplicación en cuestión y volver hacia atras con el navegador (botones) o marcar en el URL una página de mi sitio directo.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 31/03/2003, 18:17
 
Fecha de Ingreso: mayo-2002
Ubicación: Mendoza ebria y montañosa
Mensajes: 165
Antigüedad: 15 años, 6 meses
Puntos: 0
cluster, como siempre, que tipo eh...

Qué decís Cluster? Cómo va eso por allá?

Bueno, antes que nada, gracias por responder...
Ahí lo estuve leyendo, esas líneas que me decís las he visto por ahí, pero no se para que sirven especificamente... me tirarías una idea...

Y después respecto al tema de no tener acceso al php.ini (que es mi caso).. hay que usar las directivas ini_set(), cómo las uso???

Te agradezco un montón toda la ayuda viejo...
un saludo!
__________________
chapu
  #6 (permalink)  
Antiguo 01/04/2003, 10:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Sobre ini_set() ... tan solo tienes que usar la sintax tipo:

ini_set("directiva","estado");

No todas las directivas de PHP.ini se pueden modificar en "tiempo real" (o tiempo en ejecución del script) .. Pero las de sessiones (la mayoria por no decir todas) si que se pueden ajustar así.

más info sobre ini_set():
http://www.php.net/manual/en/function.ini-set.php

Sobre las directivas de configuración de sessiones:

Hazte un phpinfo() a tu sitio y mira el estado de las directivas en cuestión:

session.gc_maxlifetime = 0

Determina el tiempo en el que una session (entiendase session a un SID valido y activo) tiene validez en el tiempo . Se expresa en segundos. Transcurrido ese tiempo la session creada pasará al estado "garbage" (basura) .. osese .. el archivo de sesión que se crea (si no cambias el "handler" ... q es file por defecto) permanecerá en el servidor en espera de ser "borrado" .. pero no será útil como sesion valida para ese SID asignado. Cuando se borrará "fisicamente" ese archivo creado de la sesion lo determinan:

session.gc_probability
Se expresa en porcentaje % ... de veces que se ejecuta un inicio de session via session_start() .. Si hay muchos accesos a tus páginas que hagan session_start() .. el porcentaje debería ser bajo .. 1% .. (por poner un ejemplo) . Si tienes pocos accesos y quieres "notar" que ese archivo de sesion realmente se "borra" .. deberias usar un porcentaje alto 100%.

Para PHP 4.3.x en adelante .. nace la directiva:
session.gc_dividend

con lo cual ya no es "porcentaje al 100%" sino que lo puedes cambiar y decir por ejemplo 1000% (mil por mil) .. etc ..

Estas dos directivas .. realmente no te interesan mucho .. si usas un servicio de hosting .. Pero la de session.gc_maxlifetime = 0 sí .. es mas .. a 0 indicaría .. "muere sesion al cerrar el navegador" ..

A su vez .. si usas propagación del SID en una cookie .. Lo determina la directiva:
session.use_cookies = 1 (a 1 . ON ..)

La cookie que se crea tiene tiempo de expiración tambien .. Por defecto suele estar a 0 segundos .. pero podría (o debería ser) igual al tiempo de session.gc_maxlifetime

session.cookie_lifetime = 0

Ya que te preocupa la seguridad (cosa normal y que a todos nos tiene que preocupar) .. te recomiendo que leas mas detenidamente:

http://www.php.net/manual/en/ref.session.php

Todo lo que te he dicho es prácticamente un resumen de lo que explica el propio manual de PHP oficial .. Cuanto mas conoces la configuración de las funciones que trabajas (en este caso sesiones) . mejor sabes como optimizarlas o entender como funcionan.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 00:29.