Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Consulta quizá un poco extraña

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio
Mensaje Lun Ago 28, 2006 9:49 am
purrutia
Perlero Nuevo
Perlero Nuevo
Registrado: 24 Jul 2006
Mensajes: 16
Consulta quizá un poco extraña Responder citando

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
Mensaje Lun Ago 28, 2006 10:36 am
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
Responder citando

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
Mensaje Lun Ago 28, 2006 10:42 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
Responder citando

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:
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.

Ultima edición por explorer el Jue Oct 12, 2006 11:20 am, editado 1 vez
Mensaje Mar Ago 29, 2006 7:19 am
purrutia
Perlero Nuevo
Perlero Nuevo
Registrado: 24 Jul 2006
Mensajes: 16
Responder citando

Muchas Gracias!!!

Intentaré implementar sus sugerencias...
Mensaje Mar Ago 29, 2006 7:27 am
purrutia
Perlero Nuevo
Perlero Nuevo
Registrado: 24 Jul 2006
Mensajes: 16
Responder citando

A, una cosa más, a que te refieres con un fichero de sesion?


Gracias
Mensaje Mar Ago 29, 2006 8:35 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
Responder citando

Un fichero temporal que existe mientras un usuario mantenga una sesión con nuestro servidor.
Mensaje Mar Ago 29, 2006 8:42 am
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
Responder citando

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
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group