Foros del Web » Programando para Internet » PHP »

Problema con sesiones

Estas en el tema de Problema con sesiones en el foro de PHP en Foros del Web. Wenas, por si alguien sabe la solución mi problema es el siguiente: Utilizo sesiones en mi página web noecb.com y me funcionan bien pero se ...
  #1 (permalink)  
Antiguo 19/10/2006, 10:11
Avatar de Hereldar  
Fecha de Ingreso: octubre-2006
Ubicación: Asturias - España
Mensajes: 2
Antigüedad: 17 años, 6 meses
Puntos: 0
Pregunta Problema con sesiones

Wenas, por si alguien sabe la solución mi problema es el siguiente:

Utilizo sesiones en mi página web noecb.com y me funcionan bien pero se me plantea un pequeño inconveniente. A los enlaces que aparecen en la web se le suma esto el PHPSESSID. Por ejemplo:

urldelenlace?PHPSESSID=20fed5a8c4ae13cfc47a71029528a898

No entiendo porque pasa puesto que yo en los enlaces no incluyo nada de las sessiones y además ocurre otra cosa, ese añadido en el Firefox desaparece en cuanto pulso un enlace pero en IExplorer no desaparece en ningún momento, añadiéndoseme siempre a la dirección de los enlaces.

Me preocupa bastante por temas de seguridad y de indexación de los buscadores, alguien sabe algo?
  #2 (permalink)  
Antiguo 19/10/2006, 10:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Lo que sucede es que no conoces realmente como funcionan las sesiones .. por eso "desconoces" que es esa "variable" que ves en el URL.

Lo que ves no es más que el SID (Identificator Único de sesión). Es el dato que "relaciona" los datos del servidor (de la sesión) con el "cliente" que le pertenecen. Ese "dato" del SID se debe propagar SI o SI en cada iteracción que haces con el servidor en tus páginas. En tu caso lo haces por el URL por qué PHP así lo tienes configurado para que lo haga -automágicamente-

El SID se puede propagar en cookies, de esta forma no lo veras por el URL pues viaja dicho dato en una cookie, mucho más seguro si cabe este método vs a que requieres que tu navegador acepte dichas cookies.

En tu configuración de PHP (php.ini o lo puedes ver en un phpinfo()) veras tu configuración de PHP sobre sesiones donde le indicas como "propagar" el SID (en sus modos automáticos .. por qué lo puedes hacer completamente manual).

Supongo que tendrás algo como:

session.use_trans_sid =1
session.use_cookies = 1
session.use_only_cookies = 0

De esta forma estás diciendo a PHP que propague el SID en el URL sobre-escribiendo ciertos tag's HTML como links, en formulario (campos hidden o en el action ...) y otros tag´s HTML. Pero, también le dices que gener una COOKIE si puede ..

Lo ideal es propagar el SID sólo de una MANERA .. ya sea en el URL o en cookies .. PHP.net recomienda en COOKIES:

session.use_trans_sid =0
session.use_cookies = 1
session.use_only_cookies = 1

OJO por qué tendrás que tener cuidado con tu navegador para que acepte dichas cookies .. De hecho tus navegadores de pruebas sobre todo IE no acepta esas cookies (revisa tus niveles de seguridad .. ).

más info:
www.php.net/session

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 19/10/2006, 12:04
Avatar de Hereldar  
Fecha de Ingreso: octubre-2006
Ubicación: Asturias - España
Mensajes: 2
Antigüedad: 17 años, 6 meses
Puntos: 0
Gracias, aclarar que sí sabía que era el identificador de sesión, tan mal no estoy pero no tenía ni idea de que había que configurar el php.ini para eso. Por cierto mi servidor no me deja acceder directamente al php.ini, supongo que puedo hacer el cambio mediante código no?

Y que no se me olvide: muchas gracias, una ayuda muy completa.
  #4 (permalink)  
Antiguo 20/10/2006, 04:31
 
Fecha de Ingreso: septiembre-2006
Mensajes: 2
Antigüedad: 17 años, 7 meses
Puntos: 0
phpsessid

yo tambien estoy dandole vueltas al mismo tema, y sin tener que modificar el php.ini he encontrado lo siguiente, aunque aun no se si funciona bien, porque tras las modificaciones no le ha dado tiempo al buscador de re-indexar esas paginas y comprobar que vienen bien.

--- no puedo subir la url de la web de php.net de donde he sacado esta info ---

To stop PHPSESSID from appearing in the url, try inserting these two lines just before session_start() --

ini_set("url_rewriter.tags","");
ini_set('session.use_trans_sid', false);


Parece ser que tambien es posible desactivar este tema, mediante el fichero .htaccess, simplemente añadiendo la siguiente linea:

php_flag session.use_trans_sid off

Ya te digo, aun no he confirmado que esto funcione bien, porque en mi navegador no veo la información de ?PHPSESSID=, pero buscadores como google si la ve. Estoy en ello.

Saludos.
  #5 (permalink)  
Antiguo 20/10/2006, 08:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Así es .. vía ini_set() o .htacccess (o .php personalizados que tu proveedor te indique) puedes alterar la configuración de PHP en tiempo de ejecución.

A estas directivas:
Código PHP:
ini_set("url_rewriter.tags","");
ini_set('session.use_trans_sid'false); 
añadiría
Código PHP:
ini_set("sesion.use_cookies",true);
ini_set('session.use_only_cookies'true); 
Así forzamos la propagación del SID en cookies y desactivamos por el URL completamente.

Más info:
www.php.net/session
www.php.net/ini_set

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 20/10/2006, 10:41
 
Fecha de Ingreso: septiembre-2006
Mensajes: 2
Antigüedad: 17 años, 7 meses
Puntos: 0
Cita:
Iniciado por Cluster Ver Mensaje
añadiría .....

Así forzamos la propagación del SID en cookies y desactivamos por el URL completamente.
Pues... espero y deseo que ahora funcione bien.
Muchas gracias por el comentario.

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 16:01.