Página 1 de 1

Consulta quizá un poco extraña

NotaPublicado: 2006-08-28 10:49 @492
por purrutia
Hola:

Estoy haciendo una aplicación web, y necesito hacer algo parecido al mail de confirmación que realizan los foros.

Al suscribirse en algunos foros, se envia un mail de confirmación de la cuenta creada, en la que te pide hacer click en un link, que al parecer tiene un montón de datos cifrados.

Queria preguntar como se hace este tipo de confirmación. Los datos corresponden a una forma get o post cifrada?. o es una dirección de un cgi cifrada? Como realizo este cifrado?

Gracias

NotaPublicado: 2006-08-28 11:36 @525
por kidd
Hola:

Normalmente como se hace, es que tu guardas los datos del usuario como inactivo, entonces cada usuario va a tener un id. Al mandar el mail mandas la liga para activarlo y pasas el id del usuario en el url, por ejemplo:
http://tusitio.com/activar.cgi?sid=32686482

Ya es tu desición si quieres hacer encriptación del id.


Saludos

NotaPublicado: 2006-08-28 11:42 @529
por explorer
Seguramente te refieres a una cadena md5.
El proceso que hacen es el siguiente:
* Después de recibir los datos del usuario, se crea una cadena de texto compuesto con el nombre del usuario, algún dato privado más y una cadena que sólamente tu como administrador sabes.
* De esa cadena se calcula su md5.
* Se crea un fichero temporal que tenga justo ese nombre (esto no tiene porqué ser así. Realmente este paso se tiene que referir al hecho de que tu programa debe ser capaz de localizar a qué usuario se refiere cuando alguien solicita esa URL, por lo que en vez de ser un fichero temporal, podría ser un fichero de sessión hecho con CGI::Session, por ejemplo). Dentro del fichero temporal, guardamos el identificador del usuario en la base de datos.
* Emitimos el correo electrónico al usuario.
* Si el usuario recibe el correo, al pulsar sobre el enlace estará ejecutando otro de nuestros programas, que recuperará el fichero temporal y de ahí se sabe qué usuario ha confirmado su correo.
* Si coincide una nueva construcción md5 de los mismos componentes con el md5 que se envió al usuario, entonces estaremos seguros de que es la misma persona que ha recibido el correo.

Un ejemplo:
Código: Seleccionar todo
explorer@casa:~> perl -le 'use Digest::MD5 "md5_hex"; print uc md5_hex("JoaquinFerrero:6754:mi frase secreta")'
E63969D53318E72592F5DDD76FE1CAE0


Hay más variantes, desde luego. Se usa md5 por ser muy 'aleatoria' en su presentación.

NotaPublicado: 2006-08-29 08:19 @388
por purrutia
Muchas Gracias!!!

Intentaré implementar sus sugerencias...

NotaPublicado: 2006-08-29 08:27 @393
por purrutia
A, una cosa más, a que te refieres con un fichero de sesion?


Gracias

NotaPublicado: 2006-08-29 09:35 @441
por explorer
Un fichero temporal que existe mientras un usuario mantenga una sesión con nuestro servidor.

NotaPublicado: 2006-08-29 09:42 @446
por kidd
Hola:

En Perl hay unos módulos que te hacen la vida sencilla en cuanto al manejo de sesiones, aquí te dejo los links dé algunos. Te recomiendo que hagas uso de alguno de ellos si optas por realizar sesiones:
CGI::Session
Apache::Session


Saludos