Foros del Web » Programando para Internet » PHP »

Autentificación de usuario sin variables de sesión

Estas en el tema de Autentificación de usuario sin variables de sesión en el foro de PHP en Foros del Web. Hola a todos, mi cuestión es simple: yo uso el autentificator de Cluster para mi web, lo he personalizado un poco y me va de ...
  #1 (permalink)  
Antiguo 14/10/2005, 11:54
 
Fecha de Ingreso: enero-2005
Mensajes: 63
Antigüedad: 19 años, 10 meses
Puntos: 1
Autentificación de usuario sin variables de sesión

Hola a todos,

mi cuestión es simple: yo uso el autentificator de Cluster para mi web, lo he personalizado un poco y me va de muerte...el problema es que estoy harta de que haya gente que me mande mails porque no puede entrar en la zona privada a pesar de que insertan correctamente su nombre de usuario y contraseña. Siempre es lo mismo, no tienen habilitados en su navegador las cookies de sesión. En la web explico claramente como habilitarlas según el navegador, pero nadie se toma la molestia de leerlo antes.
La otra manera de autentificar a los usuarios es usando variables vía GET, pero no es un método muy fiable porque cualquiera puede acceder a la zona privada de un usuario simplemente usando la historia del navegador, ya que la dirección se queda grabada con las variables usuario y contraseña. No se si me explico.
Entonces mi pregunta es si hay otra forma de autentificar usuarios desde una base de datos MySql, sin necesidad de que el usuario toque su navegador, acepte o no cookies de sesión o de otro tipo.
Muchas gracias por su ayuda.
  #2 (permalink)  
Antiguo 14/10/2005, 12:24
Avatar de qwerty_wq  
Fecha de Ingreso: enero-2005
Mensajes: 109
Antigüedad: 19 años, 10 meses
Puntos: 1
¿Te refieres a mantener un registro de sesiones como hace por ejemplo PHP-Nuke?
  #3 (permalink)  
Antiguo 14/10/2005, 13:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Puedes usar sesiones igualmente .. pero propagando el SID no en cookies sino por el URL.

Eso plantea problemas de seguridad . .así que no sé que es peor: tus usuarios que no saben o no quieren habilitar cookies o los problemas de seguridad que podrías tener ..

Un saludo,
  #4 (permalink)  
Antiguo 14/10/2005, 13:50
 
Fecha de Ingreso: enero-2005
Mensajes: 63
Antigüedad: 19 años, 10 meses
Puntos: 1
En primer lugar, gracias por vuestras respuestas.
Qwerty_wq , no es eso a lo que me refería, pero gracias por preguntar.
Cluster, ya sabía que la solución que apuntabas no era en absoluto segura, pero si la única solución son el uso de cookies de sesión en PHP, entonces me pregunto qué tecnología usan los bancos, por ejemplo. Imagino que se tratará de aplicaciones creadas con Java...un saludo.
  #5 (permalink)  
Antiguo 14/10/2005, 14:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
Iniciado por Molxa
En primer lugar, gracias por vuestras respuestas.
Qwerty_wq , no es eso a lo que me refería, pero gracias por preguntar.
Cluster, ya sabía que la solución que apuntabas no era en absoluto segura, pero si la única solución son el uso de cookies de sesión en PHP, entonces me pregunto qué tecnología usan los bancos, por ejemplo. Imagino que se tratará de aplicaciones creadas con Java...un saludo.
Pues usa lo mismo identificadores que propagan por el HTTP y validan por otros médios. (una pequeña introducción: http://www.ecerami.com/applied_sprin.../session_2.ppt)

Lo único es que esos bancos usa SSL y tu aplicación también podría usarlo .. por lo menos para no ir dejando el SID en cachés de proxys ni navegadores .. o que sea capturado por un sniffer en una LAN.

Lo que no evitaras en ningún sistema (en PHP propagando el SID en el URL) es que un usuario pase un link a otro usuario (en un foro .. por e-mail .. en un chat) con el SID de una sesión activa en ese instante, por ende si propagas el SID en el URL lo que hay que tener buen cuidado es en los tiempos de expiración de tus sesiones para mitigar el problema.

De todas formas ... la gestión de sesiones "nativa" de PHP no es el único método .. de hecho hay muchos otros "códigos" por ahí para mejorarlos (sobre todo la "pésima" gestión del tiempo de expiración de una sesión que PHP dá como soporte = null). En sitios como www.phpclasses.org he visto vários sistemas alternativos o complementarios al tratamiento de sesiones de PHP nativo .. revisalos, pruebalos y decide.

No sé has leido este documento sobre el tema (de los problemas con propagar el SID en el URL):
http://www.acros.si/papers/session_fixation.pdf

Un saludo,
  #6 (permalink)  
Antiguo 14/10/2005, 14:12
 
Fecha de Ingreso: julio-2003
Mensajes: 26
Antigüedad: 21 años, 4 meses
Puntos: 0
hola

je, con java, si no tenes la consola habilitada estas en la misma


Ni idea de cual es el identificador de Cluster... nose como esta hecho, pero la manera de hacer la autentificacion es por medio de las variables de sesion ($_SESSION), y tb como comenta Cluster.

Talvez... podes hacer es agarrar el IP de la maquina, guardar un txt (o en una BBDD) teniendo como nomrbre de archivo (o ID de registro) ese IP y guardar si esta logeado o no, el usu, el pass, privilegio o cualquier otra cosa y luego en cada pag tomar el IP y buscar el txt (o registro de la bdd) y verificar por ej si paso menos de 5 minutos entonces esta validado (podes igualmente a partir del usu y pass guardado en el txt hacer la validacion nuevamente para mayor proteccion, tb podes validar q el usuario venga de otra pag de tu sitio, si viene de ayuera pedis el login nuevamente), sino vuelve a la pag de login.
Con eso te armas un login sin variables de sesion... es la unica variante q se me ocurre para hacerlo...

espero q te sea de utilidad la sugerencia....

saludos
  #7 (permalink)  
Antiguo 14/10/2005, 14:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Usar "IP's" no te sirve para "amarrar" los datos que tu relaciones con ese cliente .. entre otras cosas, imagina la gente que pasa por un proxy (una empresa que todos salen con la misma IP .. los proxy caché de algunos ISP's .. etc).

Por eso cualquier sistema de "sesiones" genera un identificador único de sesión (en php lo llamamos "SID") y que suele ser un dato alfanumérico tal que no se repita con los que exista y sea único. Pero .. como tu "cliente" ha de saber a que dato se ha de referenciar en el servidor (a la "sesión" que contiene tus datos) .. por eso es necesario ir "pasando" ya sea por el URL, por cookies .. ese "SID" (o identificador) generado y así tener asociado a cliente-servidor (su sesión) por el tiempo que esta se define de validez.

Bueno .. eso es la "base" de cualquier sistema de "sesiones" bajo cliente-servidor .. PHP como hemos comentado implementa sus própias funciones y metodos para dar soporte a esto .. pero uno mismo podría llegar a implementar desde cero un sistema así completo. De hecho como he comentado no seríamos los primeros en hacerlo.

Un saludo,
  #8 (permalink)  
Antiguo 14/10/2005, 14:39
 
Fecha de Ingreso: julio-2003
Mensajes: 26
Antigüedad: 21 años, 4 meses
Puntos: 0
sisi señor... es verdad... flor de despiste q tuve...

gracias por la correccion

saludos
  #9 (permalink)  
Antiguo 25/10/2005, 11:31
 
Fecha de Ingreso: enero-2005
Mensajes: 63
Antigüedad: 19 años, 10 meses
Puntos: 1
Siento no haberos contestado antes...gracias por todas vuestras respuestas.
Cluster, decidí hacerme con una SSL..., de todas formas estoy elaborando para la misma web una tienda virtual y me iba a hacer falta para el tema del pago. La verdad es que creo que ya he solucionado todos los problemas de seguridad. Pero desde aqui quiero decir que el autentificator de cluster es un excelente punto de partida para elaborar un completo y personalizado sistema de autentificación. Muchas gracias.
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 14:05.