Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/05/2006, 03:51
Avatar de g05l21
g05l21
 
Fecha de Ingreso: mayo-2006
Mensajes: 76
Antigüedad: 17 años, 11 meses
Puntos: 1
Detalle curioso en sesiones

Hola a todos.

Versión de Php:

Resulta que tengo una aplicación con registro de usuarios. Cuando los usuarios entran trato los datos mediante una clase, donde meto todos los datos que depués necesite de los usuarios y la voy llevando de un lado a otro por medio de $_SESSION.

Además aprovecho esa $_SESSION para evitar que la gente entre a las páginas internas por medio de un

Código PHP:
require_once ("../cgi/class.usuario.inc.php"); //En principio no creo q sea necesario explicar como va la clase... (Pereza me da poner todo el código, q además está muuu sucio ; )
session_start();

if (empty (
$_SESSION)){    
    
header('Location: http ://'.$_SERVER['HTTP_HOST']); //Tiene el espacio después de http porque no me deja poner enlaces todavía ;)
    
exit;
}else {
... 
Bastante sencillito.

El "require_once" lo pongo antes del "session_start();" para que entienda la clase (lo saqué de este foro precisamente).

En la página principal "http: //'.$_SERVER['HTTP_HOST']" es donde tengo el control de acceso.

Todo funciona perfectamente, siempre y cuando vayas de enlace en enlace.

Es decir, si yo voy directamente por los enlaces de la aplicación todo sigue bien (todos los index.php llevan la misma cabecera, el resto son includes).
Ahora, si pongo directamente la dirección del enlace en cuestión se va a "tomar por saco" la $_SESSION. Pero sólo la primera vez que voy al enlace. Si vuelvo a logarme y vuelvo a poner la dirección del enlace me funciona.

Ejemplo.

Caso 1º -
Escribo url.net -> Me logeo -> voy mediante los enlaces de la página a url.net/carpeta -> todo funciona correctamente.

Caso 2º -
Escribo url.net -> Me logeo -> escribo url.net/carpeta -> A tomar por saco la sesión y de vuelta a url.net -> Me logeo de nuevo -> escribo url.net/carpeta -> todo funciona correctamente.

Supongo que tiene que ver con los require_once o con las variables de session (algo relacionado con subcarpetas¿¿?? No me suena nada)

La cuestión es que no se de donde viene el problemilla. Y pasa en FF y en IE (los únicos en los q lo he probado)

Alguien me puede explicar el porque¿¿??

A parte de eso. Se que Cluster tiene un buen programa para logearse, pero a este le véis algun problema "grave" de seguridad¿¿?? Alguna sugerencia importante que hacerle¿¿??

Thx to all.