Ver Mensaje Individual
  #9 (permalink)  
Antiguo 27/12/2004, 09:03
Avatar de tralara
tralara
 
Fecha de Ingreso: diciembre-2003
Mensajes: 230
Antigüedad: 20 años, 5 meses
Puntos: 0
Ok, ahora voy a estudiar todo esto, pero con lo que me comentas me surgen algunas dudas Cluster:

En mi formulario en ningun momento estoy propagando un SID, en cada pagina del formulario voy recogiendo unas variables que voy guardando en la sesion y que al final recojo en un archivo.txt final, despues vacio y destruyo la sesion, no lo creia necesario al no ser una zona de "cliente" digamos.

Entonces, me dices que para que las funciones session_cache_expire() y _limiter() tengan efecto sobre la session es imprescindible declarar el SID pues es a el a quien se refieren y no a la session en si?

O sea primero se debe nombrar la sesion, declarar el SID y entonces puedo manejar los tiempos de vida y eso siempre declarando una cookie?

Es muy importante para mi tener esto claro antes de ponerme a modificar lo que ya tengo funcionando.

Cuando hacemos:
Código PHP:
<?
session_start
();
?>
Tanto en el lado del cliente (navegador) como en el del servidor(direcotorio por defecto .tmp/ de la configuracion de PHP, etc) se genera automaticamente una cookie por defecto y que contiene por ejemplo:

Name: PHPSESSID
Content: g3c91jc5aqabq9ffa3h2rbvd66
Host: 127.0.0.1 (porque chequeo en local)
Path: /
Sendo For: Any type of connection
Expires: at end of session

Con esto intuyo que se ha creado un SID. Si borro esas cookies, asigna otro SID completamente distinto, si abro otro navegador tambien crea uno nuevo, con esto entiendo que cualquiera que abra la pagina por primera vez se asignara un nuevo SID (Identificador de Session) y que el tiempo de vida es el que indique la session, si no se indica nada por defecto toma el valor por defecto.

Cuando en la pagina A escribo esto:
Código PHP:
<?
session_start
();
$_SESSION['x'] = "variable";
header ("Location: B.php");
?>
Y en la pagina B estoy leyendolo asi:
Código PHP:
<?
session_start
();
echo 
$_SESSION['x'];
?>
Como se han propagado tanto ese SID por defecto y ['x], por la cookie?
O sea que podriamos decir que por defecto PHP propaga esa info por cookie(de la forma segura?), asi que hasta aqui no hay un problema de seguridad, no?
Seria incluso asi recomendable, hasta en una zona no especifica para clientes, declarar manualmente un SID?

En todo caso y para terminar se podria decir?

1. Para determinar el tiempo de vida de una sesion mediante session_cache_expire es imprescindible dar un nombre a la session y nombrar un SID.

2. Si no se cumple 1, hay que usar ini_set("session.cache_expire","valor"); para redefinir el valor por defecto para el tiempo de vida de las sesiones.

No habiendo en nigun caso un problema de seguridad añadido?


Bueno, gracias de verdad y a ver que sacamos de todo esto en claro!!

Saludos