Ver Mensaje Individual
  #5 (permalink)  
Antiguo 03/10/2003, 21:43
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Mi pregunta es: He leido en muchos libros el peligro que entraña que el id de sesion se pase por URL, con dicho id se puede acceder a las variable de sesion, en tal caso ¡¡¡de que sirve todo lo que se hace en el scrip anterior??!!, un atacante sabe que solo tendrá que jugar con las variables de sesion que se pasan.
A las variables de sesión no accederías .. pero, si que podría X usuario entrar bajo la identidad en curso de Y usuario .. y, por su puesto si hay "variables" que le entregues al usuario X si está bajo su sesión .. si usa el ID de sesión el usuario Y "podría" llegar a verlas.

De todas formas .. para que suceda esto, el usuario X tiene que pasarle ese ID de sesión (fijate arriba en estos foros que se propaga el ID de sesión por el URL) al usuario Y de alguna forma (pinchando en un link externo a tu sitio y que el usuario Y lo capture en un "http_referrer" .. o se lo envia por otro medio ..).

A su vez .. las sesiones en PHP tienen tiempo de expiración .. esos parámetros por defecto los configuras en tu php.ini (y algunos puedes modificarlos en .htaccess o en ini_set() ..) ..

Muchas configuraciones de tiempos de expiración de sesiones se pueden determinar "muere la sesión" al cerrar el navegador .. Con lo cual tu "intruso Y" ha de usar ese SID en ese instante .. pues en cuanto abandone la sesión .. el SID no será válido.

A todo esto .. en las últimas versiones de PHP (4.3.x en adelante) se ha mejorado mucho el tema de sesiones, prestando atención a eso mismo .. al SID y si se propaga por el URL. Ahora (en 4.3.x) el SID generado se valida si lo creó el domino que lo llama .. así que si yo intento usar tu SID de www.tal.tal desde www.yo.tal .. no conseguiré nada ..

Y .. siempre puedes propagar el SID en cookies que quedarían almacenadas en el navegador del cliente (con su tiempo de expiración definible). Sólo tienes que avisar a tu usuario que tu sistema (pese que use sesiones) requiere de cookies para funcionar.


Cita:
¿no seria mas logico hacer un md5 de nick, password y alguna cadena que solo conozcamos nosotros para realizar el proceso?
De esta manera el atacante debe saber la cadena o perder muchisimo tiempo mediante fuerza bruta.
mm ¿que crees que es ese ID de sesión (SID si le pones el nombre de la sesión) ? .. es un código generado en MD5() ...

El "SID" SOLO es una referencia al nombre del archivo en el SERVIDOR que contienen tus variables de sesión .. NO contiene ahí ninguna variable SOLO una referencia .. Por eso .. si tu SID queda dando vueltas en "log" de proxys .. de servidores que capuran los "referers" .. etc .. "Matando" (expirando mejor dicho) esos SID y ejecutando los proceso de "recolección de basura" (garbage) ya no tienes que temer nada por tus variables de sesiones.

Cita:
¿como aconsejais vosotros hacerlo?¿Como se lo puedo poner dificil a los hackers?
Yo uso cookies para propagar el SID .. con la desventaja que mis usuarios tienen que tener navegadores con cookies activadas. Es seguro pero con eseo "contra".

Ahora bien .. grácias a los nuevas mejoras del tema sesiones (como ya mencioné) de PHP .. creo que ya podemos usar con tranquilidad la propagación del SID en el URL siempre y cuando ajustemos correctamente la configuración de los tiempos de expiración de las sesiones. (ver php.ini ..)

Cita:
Por ultimo y por curiosidad : ¿COMO SE PUEDE ACCEDER A LAS VARIABLES DE SESION OBTENIENDO EL ID A TRAVES DE LA URL?
Ya te lo comenté al principio .. El SID sólo es una referencia .. no contiene variables. Todo depende de tus aplicaciones y que muestres .. Si tienes un sistema de usuarios .. con el "perfil" del usuario donde si está "longeado" le permites ejemplo: modificar su contraseña o verla .. editar sus datos personales .. etc (lo normal) .. pues si entran con tu mismo SID en ese instante que el usuario activo está usando la aplicación .. como ya he comentado .. "depende" de varios factores (sobre todo "ajuste fino" de tu configuración de sesiones) podría o no hacer algo ...

PD: .. Cuanto más leas sobre la configuración de php.ini sobre el apartado sesiones, veras que menos paranoias tendrás o por lo menos sabras por donde solucionarlo. Si lees artículos "desfasados" que hablan tal vez de "PHP" usando session_register() .. usando variables de sesión "globales" .. con cosas como $Autentificado="si" .. ahí es donde te puedes asustar xD...


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.