Foros del Web » Programando para Internet » PHP »

seguridad en sessiones

Estas en el tema de seguridad en sessiones en el foro de PHP en Foros del Web. Hola!...tengo el siguiente problema. Probe el script q esta de ejemplo por todos lados del contador...cada vez q ingreso a la pagina...me muestra el contador, ...
  #1 (permalink)  
Antiguo 10/05/2004, 07:51
 
Fecha de Ingreso: noviembre-2002
Ubicación: LIMA
Mensajes: 652
Antigüedad: 21 años, 5 meses
Puntos: 1
seguridad en sessiones

Hola!...tengo el siguiente problema.

Probe el script q esta de ejemplo por todos lados del contador...cada vez q ingreso a la pagina...me muestra el contador, y se incrementa. El contador es una variable de sesion.
Hasta aqui todo bien.

Ahora, en el ejemplo q vi, se propagaba el SID con codigo...probe quitarselo...y funciona igual. Las pruebas las hago tanto en mi servidor...como en mi pc. En mi pc tengo cookies habilitadas.


El problema es el siguiente:
1) abro una ventana en mi navegador y pongo
www.midominio.com/contador.php
2) aparece el contador en 1..
3)vuelvo a llamarla (tiene un link a si misma), esta vez...misteriosamente aparece el SID en la URL(porque??, si yo no lo puse en el codigo??)...vuelve el contador a 2, en las siguientes llamadas desaparece el SID, y el contador se sigue incrementando.

OK...cierro la ventana del navegador...y puedo empezar de cero,
pero si tomo el SID (guardado en mi historial), y lo ejecuto nuevamente como a la hora...y LA SESION AUN EXISTE.

Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /tmp /tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid On On

Ahi tire la configuracion en mi servidor ...
Yo necesito obviamente por cuestiones de seguridad q la sesion finalize cuando se cierra la ventana del navegador.

Tambien quiero saber por ej..el session.save_path =/tmp
es el temporal general del servidor?...porque tambien tengo un /tmp entre las carpetas asignadas a mi dominio, sin embargo ahi no encuentro archivos de sesiones (mientras se supone estan creadas). No es buena idea imagino q las sesiones se guarden en un /tmp general en donde,,,..vaya a saber quienes puedan leerla.

Tengo entendido q todos estos valores se modifican por codigo...como hago para q queden modificadas por defecto..como en el php.ini de mi computador?.

Bueno, son muchas dudas. Gracias desde ya.
  #2 (permalink)  
Antiguo 10/05/2004, 15:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
3)vuelvo a llamarla (tiene un link a si misma), esta vez...misteriosamente aparece el SID en la URL(porque??, si yo no lo puse en el codigo??)...vuelve el contador a 2, en las siguientes llamadas desaparece el SID, y el contador se sigue incrementando.
Esta directiva indica a PHP que sobre-escriba el SID en los URL's .. sean links, formularios (en campos hidden o en el action) y otros tags HTML:

session.use_trans_sid On On

(otros tags HTML que define la directiva: url_rewrite_tags : php.ini)


Cita:
OK...cierro la ventana del navegador...y puedo empezar de cero,
pero si tomo el SID (guardado en mi historial), y lo ejecuto nuevamente como a la hora...y LA SESION AUN EXISTE.
Ese tiempo lo determina:
session.gc_maxlifetime 1440 1440

Lo que ves ahí son segundos .. Segundos que el SID es válido pese que .. progages el SID en cookies y esta tenga de vida "0" segundos (sea de tipo "sesión"= cierras navegador .. muere cookie).


[quote]Tambien quiero saber por ej..el session.save_path =/tmp
es el temporal general del servidor?...porque tambien tengo un /tmp entre las carpetas asignadas a mi dominio, sin embargo ahi no encuentro archivos de sesiones (mientras se supone estan creadas). No es buena idea imagino q las sesiones se guarden en un /tmp general en donde,,,..vaya a saber quienes puedan leerla.[quote]

En teoría nadie puede acceder al /tmp común de ese servidor (si PHP está bien configurado con sus open_base_dir .. o "safe mode" ...).

Si está configurado así en la mayoría de servidores es por qué no lo cambian .. Podrían crearte una directiva en tu servidor virtual para indicar el session.save_path que apunte a tu tmp/ de tu sitio y no al "común" de ese servidor (algunos servicios de hosting lo hacen .. pero la mayoría no).

Tu mismo vía la función session_save_path() puedes moverte los archivos que PHP genera de sesión a donde tu quieras (ten presente en dar permisos de escritura a ese directorio donde lo muevas ..).

A nivel de directorios de un servidor .. en Linux (*NIX) un "/tmp" indica "el raiz" (el /) . no es lo mismo que tu "supuesto" raiz que tu vez al entrar por FTP a tu sito .. lo que estás viendo es el "DOCUMENT_ROOT" que apunta a tu servidor virtual asignado en ese servidor .. tal vez algo tipo: /var/nose/sitios/nose.com/ .. (en un phpinfo() lo puedes ver) .. así que no hay que confundir este punto sobre todo cuando tengas que usar rutas completamente absolutas desde el "raiz" de ese servidor y no de tu "sitio".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 10/05/2004, 21:46
 
Fecha de Ingreso: noviembre-2002
Ubicación: LIMA
Mensajes: 652
Antigüedad: 21 años, 5 meses
Puntos: 1
muchas gracias cluster...posteare nuevamente...me aparecieron nuevas dudas...pero lo q me dijiste ya me esta sirviendo para ir entendiendo.
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 09:43.