Foros del Web » Programando para Internet » PHP »

evitar el PHPSESSID por GET

Estas en el tema de evitar el PHPSESSID por GET en el foro de PHP en Foros del Web. Gurues: estoy desarrollando una aplicacion con php en la que utilizo algo similar a un carro de compras, por esto me he visto en la ...
  #1 (permalink)  
Antiguo 22/08/2006, 11:38
 
Fecha de Ingreso: junio-2005
Mensajes: 23
Antigüedad: 18 años, 10 meses
Puntos: 0
evitar el PHPSESSID por GET

Gurues:

estoy desarrollando una aplicacion con php en la que utilizo algo similar a un carro de compras, por esto me he visto en la necesidad de aplicar "sesiones". El problema radica en que me pasa la variable PHPSESSID por GET sin que yo la haya definido asi (pasa solo cuando visitas la pagina por primera vez, o cuando crea la variable PHPSESSID, luego no pasa la variable).
Hay alguna forma de evitar que ocurra esto?

de antemano muchas gracias!!!
  #2 (permalink)  
Antiguo 22/08/2006, 12:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
PHPSESSID es el nombre por defecto que PHP dá a una sesión (en su configuración: php.ini directiva: session.name )

Tú en tu código no propagas el SID .. pero tienes configurado para que lo haga por el URL:

(php.ini)
session.use_trans_sid = ON

Pudes propagar el SID (Identificador Único de Sesión) en cookies .. mejorando la seguridad y no viendo en el URL el SID propagado como ahora lo ves.

Debes desactivar la propagación del SID en el URL:
session.use_trans_sid = OFF

y forzar la propagación del SID en cookies:
session.use_cookies = ON
session.use_only_cookies = ON

Asegurate de que tu navegador acepte cookies. Si no puedes modificar tu php.ini puedes usar funciones como ini_set() para pre-establecer en tiempo de ejecución esos valores y forma de trabajar de PHP sobre sesiones.

Te recomiendo leer sobre sesiones y sobre el concepto del "SID":
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 22/08/2006, 18:08
 
Fecha de Ingreso: junio-2005
Mensajes: 23
Antigüedad: 18 años, 10 meses
Puntos: 0
Don Cluster, primero que todo agradecer tu preocupación por dar respuestas a este humilde servidor. Veo que el nivel de respuesta que me diste supera mis conocimientos. Ahora, igual le hago empeño y algo modifiqué, sin embargo, el resultado ha sido el mismo. Por favor, dadme la ultima mano, la cosa es asi...
La aplicación está alojada en un servidor remoto, por ende, imposible modificar el php.ini pero la configuracion es la siguiente:

session.use_cookies = ON
session.use_only_cookies = OFF
session.use_trans_sid = ON

con esto supongo que se propaga por URL y no por cookie.

como recomendabas, aplique ini_set():

ini_set("session.use_only_cookies","1");
ini_set("session.use_trans_sid","0");

a pesar de esto, los resultados siguen siendo los mismos (links con el PHPSESSID en el URL, recuerda que es esto precisamente lo que quiero evitar)

Amigo Cluster, ando muy perdido??

gracias nuevamente
  #4 (permalink)  
Antiguo 22/08/2006, 18:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El uso de ini_set() debe ser antes de session_start() (como no veo el código completo en su contexto no sé exactamente donde lo aplicastes). Si no lo haces así no tiene efecto las definiciones que hagas.

Por otro lado, es necesario definir (o forzar): session.use_cookies a 0 también .. y "opcional" session_use_only_cookies .. aunque si usas cookies, lo ideal son ambas directivas a 1.

También deberías consultar con tu proveedor si te van a dejar realizar cambios "en tiempo de ejecución" vìa esas funciones .. hay proveedores que te dejan crear un .htaccess para configurar "php_flag o php_value" y definir esas directivas así o incluso un própio php.ini que debes crear o ya te indicarán su ruta para que tu lo modifiques o personalices.

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 22/08/2006, 18:33
 
Fecha de Ingreso: junio-2005
Mensajes: 23
Antigüedad: 18 años, 10 meses
Puntos: 0
Maestro Cluster, efectivamente he utilizado ini_set() antes de session_start(), tambien probé todas las combinaciones posibles con los ini_set(), es decir, forcé las 3 variables como señalaste en la primera respuesta. Hasta aqui todo bien. Ahora, efectivamente en el servidor hay un archivo llamado .htaccess y aqui, el asunto, se complica para mi. ¿qué es lo que debiera incluir en este archivo para que la cosa resulte?
php_flag o php_value, para mi equivalen al chino mandarín!!!

Don Cluster, Gracias!!!!

Última edición por pipo165; 22/08/2006 a las 18:34 Razón: faltó agradecer
  #6 (permalink)  
Antiguo 22/08/2006, 18:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Edita en ese caso tu .httaccess y usa:

php_flag nombre_directiva valor

o con php_value .. asì con esa sintax

php_value session.use_trans_sid 0

Creo que quedaría así.

De todas formas te insisto que consultes con tu proveedor .. el te dirá si permite eso en sus .htaccess o te recomedará la mejor forma .. por qué hay veces que desactivan "cosas" (no estoy tan al tanto de que "cosas" hacen) y por mucho que uno indique cierta configuración detallada de PHP .. no afecta para nada.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 23/08/2006, 17:17
 
Fecha de Ingreso: junio-2005
Mensajes: 23
Antigüedad: 18 años, 10 meses
Puntos: 0
Maestro, asunto resuelto!!!

aplique php_value como lo señalas en .httacess previa confirmacion con el proveedor. la cosa anda como avion ahora.

Cluster, Gracias Totales!!!
  #8 (permalink)  
Antiguo 16/03/2007, 04:26
Avatar de Fociños  
Fecha de Ingreso: marzo-2004
Ubicación: A Coruña
Mensajes: 587
Antigüedad: 20 años, 1 mes
Puntos: 0
Re: evitar el PHPSESSID por GET

Cita:
Iniciado por Cluster Ver Mensaje
De todas formas te insisto que consultes con tu proveedor .. el te dirá si permite eso en sus .htaccess o te recomedará la mejor forma .. por qué hay veces que desactivan "cosas" (no estoy tan al tanto de que "cosas" hacen) y por mucho que uno indique cierta configuración detallada de PHP .. no afecta para nada.

,
Hola, yo he probado con las siguiente lineas de código para un hosting de DreamHost

php_value session.use_cookies 1
php_value session.use_only_cookies 1
php_value session.use_trans_sid 0

la sesión sigue mostrandose por URL.
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 02:46.