Foros del Web » Programando para Internet » PHP »

Seguridad y PHPSESSID

Estas en el tema de Seguridad y PHPSESSID en el foro de PHP en Foros del Web. Tengo entendido que no es muy seguro utilizar el SID en la url, pq podría ser cacheado por algun robot o de cualquier otra manera ...
  #1 (permalink)  
Antiguo 03/02/2004, 20:47
 
Fecha de Ingreso: enero-2003
Mensajes: 75
Antigüedad: 14 años, 10 meses
Puntos: 0
Pregunta Seguridad y PHPSESSID

Tengo entendido que no es muy seguro utilizar el SID en la url, pq podría ser cacheado por algun robot o de cualquier otra manera y eso implicaría tener un posible acceso a los datos de un usuario, pero tb es la única forma de asegurarse que se propaga el SID independientemente del navegador usado.

Si esto es como digo, ¿existe alguna forma fácil de asegurar que el SID sólo se propague en el caso de que el navegador no acepte cookies?, si no es fácil, ¿podrías darme alguna pista de como lo haríais o alguna otra opción que podría tener?

Muchas gracias por adelantado.
__________________
Saludos, Mich
  #2 (permalink)  
Antiguo 04/02/2004, 08:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En teoría si usas:

session.use_trans_sid =1 .. es decir; que dejas a PHP que reescriba los tag HTML de links, formularios, frames y algunos más para propagar el SID en dichos tag "reescribiendolos" para añadir el SID de forma automática y .. a su vez usas session.use_cookies = 1 , si la cookie falla .. el TAG html de link o el que corresponda se reescribe igualmente .. por ende el SID se propagaría (en ese caso por el URL) y si acepta cookies .. por la cookie (en ese caso no sé cual de los dos tiene preferencia .. pero sería el mismo).

Lo único que PHP no va a reescribir automáticamente para insertar el SID son en redireccionamientos de tipo javascript (window.location o similares) ni en tag de <META .. refresh> .. ni en redireccionamientos tipo header("Location: ... "). Para esos casos particulares, deberías propagar el SID de forma manual para que en caso de que propagues el SID en el URL (la cookie no se pudo crear) .. el SID igualmente se propague, sino, fallaría el sistema (la sesión) en esos casos particulares ya que PHP no propagaria el SID en esas situaciones, mientras que si usas cookies .. el SID "pasa" por todo tipo de redireccionamiento.

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 04/02/2004, 09:42
 
Fecha de Ingreso: enero-2003
Mensajes: 75
Antigüedad: 14 años, 10 meses
Puntos: 0
Gracias Cluster, ahora mismo lo pruebo con el ini_set, lo de propagar el SID automático, en principio lo estoy haciendo todo en local, unas preguntas:

¿el utilizar ese ini_set("session.use_trans_sid","1") podría causarme algun problema con las directivas de algun otro servidor?, me gustaría que fuera lo más compatible con cualquier cosa que se pueda encontrar.

Y ¿cómo se podría hacer para los casos en los que no se propaga automáticamente?, pretendo utilizar un motor de templates, el NokTemplate para más señas, quizás utilizando un parseador de urls, o sino ¿qué sería lo más fácil?, seguro q la solución para este tipo de casos ya está requetepensada (que se propague el SID en TODAS las urls, las que sean, sólo si las cookies no se aceptan).

Muchas gracias por la ayuda, ahora me pongo a modificar algunas cosillas y probar si funcionan.
__________________
Saludos, Mich

Última edición por Mich Buchanan; 04/02/2004 a las 09:45
  #4 (permalink)  
Antiguo 04/02/2004, 10:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
¿el utilizar ese ini_set("session.use_trans_sid","1") podría causarme algun problema con las directivas de algun otro servidor?, me gustaría que fuera lo más compatible con cualquier cosa que se pueda encontrar.
Problema no te va a dar .. bueno, si el servidor tiene alguna restricción para usar ini_set() . no podrás "forzar" esa configuración .. pero lo importante es que o bien tu script fuerce la configuración de sesiones a lo que va a usar tu aplicación o bien lo avises en la documentación de tu aplicación.


Al usar un motor de templates .. al final es PHP el que en última instancia "entrega" el código generado (HTML/etc) al navegador (cliente) .. es en ese momento cuando interviene el proceso de "reescritura" de esos TAG html que comenté y si corresponde (si session.use_trans_sid =1) se añadirá el SID automático ..

Como ya te comenté .. PHP no va a insertar el SID (si propagas el SID de forma automática con "use_trans_sid") en redireccionamientos como los que mencioné .. En esos casos particulares (sólo son 3/4 casos) debes hacerlo tu de forma manual.

(si estás pensando en desarrollar una aplicación genérica que use sesiones y estás decidiendo como vas a propagar el SID para que tu aplicación la gestione y no sea el usuario final el que se tenga que preocupar .. DEBES avisar en tu documentación sobre esos casos particulares. Recuerda que serán "programadores" quien lo use .. Así que .. si todo está bien explicado no tienen por qué tener problema de uso de tu aplicación.)

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 04/02/2004, 11:41
 
Fecha de Ingreso: enero-2003
Mensajes: 75
Antigüedad: 14 años, 10 meses
Puntos: 0
Vale, voy apuntando los detalles para una posible documentación.

Pero en cuanto a esos 3/4 casos, no se si no te entiendo o no entiendes lo que preguntaba, digoque igual sería más práctico el añadir al motor de templates un ¿parseador? (¿se dice así cuando se cambian unos valores por otros?) de urls que añadiera el SID a todas las urls (incluidos esos 3/4 casos que comentas) y olvidarme del ini_set("session.use_trans_sid","1"), ¿que opinas?, sería más cómodo o hay alguna pega a priori.

Gracias, me estás ayudando mucho.
__________________
Saludos, Mich
  #6 (permalink)  
Antiguo 04/02/2004, 11:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues .. por poder hacerlo lo puedes hacer .. pero PHP ya lo hace en el 99% de casos si usas dicha directiva a "1" y .. seguro que lo hace más rápido que cualquier código interpretado que puedas diseñar.

Pero .. redireccionamientos Javascript pueden exister vários y de diferentes formas .. la etiqueta META de refresh .. es sólo una .. (ahí te tendrás que pelear con expresiones regulares y ver todas las posibles opciones)

pero, lo que te va a quedar fuera de tu posible método que implementes bajo tu motor de templates son los redireccionamientos tipo:

header("Location: .....");

Sinceramente .. yo me quedáría con lo que ya hace PHP y AVISO de esos casos particulares para que cada cual lo tome en cuenta. Sería "bonito" una aplicación así que te propague el SID sin que sepas ni como lo hace "solo que funciona" .. pero a veces toda esa lógica y proceso que vas a tener que implementar no es = mejor rendimiento y todo esto por un poco de comodidad cara al "programador" usuario de tu aplicación/utilidad.

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 04/02/2004, 12:30
 
Fecha de Ingreso: enero-2003
Mensajes: 75
Antigüedad: 14 años, 10 meses
Puntos: 0
Vale, ya lo entiendo, es factible, pero muy complicado, restaría rendimiento y a pesar de ello aún habría alguna pega como los header que comentas, pero lo que más me convence es que si tu mismo que pareces ser un avezado programador php pasarías de hacerlo, yo como lechón programador haré lo propio.

Perdona por tanta pregunta, igual es algo obvio, pero bueno, entonces la única solución sería o no usar esos 3/4 casos o añadir el SID manualmente, de tal manera que en esos casos el SID aparecería siempre, a pesar de los riesgos que implica.

Igual es preguntar demasiado, ¿pero como haces tu en tus scripts para este tipo casos?


Gracias, una vez más.
__________________
Saludos, Mich
  #8 (permalink)  
Antiguo 04/02/2004, 13:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Yo propago el SID en cookies y aviso que mi aplicación requiere de permisos para usar cookies. Pero lo aviso .. El que tenga "paranoias" con cookies .. no podrá usar mis aplicaciones lo tengo presente, pero es la forma más transparente (cara a tu programación) y segura (no viaja el SID en el URL y PHP gestiona que HOST crea esa cookie como una cookie normal) de usar sesiones.

La misma documentación de PHP lo menciona así. (en un php.ini puedes ver ese comentario sobre el uso de session.use_trans_sid y sus problemas).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 04/02/2004, 13:38
 
Fecha de Ingreso: enero-2003
Mensajes: 75
Antigüedad: 14 años, 10 meses
Puntos: 0
OK, gracias por todo, me ha servido de mucha ayuda.
__________________
Saludos, Mich
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 13:34.