miviro

Malas verificaciones de correos electrónicos

2025-03-28 - 2 min read

Al querer hacer una cuenta en Beamian para el Foro Tecnológico XXV, el formulario no aceptó mi cuenta de correo personal, pero sí mi cuenta “@gmail.com”.

correoinvalido

Por?

Por supuesto, mi cuenta de correo personal es válida y he recibido como enviado correos sin ningún fallo, por tanto: ¿qué problema hay?

Resulta que Beamian tiene la mala práctica de verificar correos client-side, es decir, del lado del cliente, en este caso, en nuestro navegador. Como se explica en el link, la única regla que un correo debe seguir es que tenga una ‘@’, por ejemplo “a@b” podría ser una dirección de correo legal (si existiera el DNS para ‘b’, algo que no podría pasar en Internet pero sí en Intranets).

Por esta mala implementación no podía iniciar sesión con mi correo, pero no iba a rendirme así de pronto.

Saliéndonos con la nuestra

Abrí las herramientas de desarrollador y en la pestaña de Network vi que, en efecto, al probar con un correo no aceptado, no mandaba ninguna petición al servidor. Por tanto, mi idea de que la verificación estaba siendo hecha del lado del cliente era cierta.

Por otro lado, al probar con correo aceptado (@gmail.com), sí que se manda una petición, concretamente a un endpoint en el que se comprueba la validez del usuario.

peticiones

La primera peticiones es la que nos interesa:

requestbody

Podemos ver claramente el correo de prueba ingresado, tanto como el evento al que nos estamos apuntando. Ahora es cuestión de cambiar el contenido de la request, algo que podemos hacer directamente desde Firefox, clickeando en la petición y dándole a Resend en el apartado de Headers.

Para poder registrarnos, pondremos el campo email a nuestro email deseado, y el apartado send_confirmation_email a true.

Y voilà, recibimos un correo en nuestra dirección deseada, previamente prohibida por el formulario!

correoverificacion

Como anécdota, esta comprobación también está presente en el inicio de sesión por enlace al correo electrónico, por lo que sólo podré iniciar sesión con correo + contraseña (donde curiosamiente no está la comprobación, probablemente por que es tratada como un nombre de usuario).

Conclusión

El uso de comprobación de correo del lado del cliente, más allá de comprobar el formato “a@b”, no solo es innecesario, si no que, como en este caso, puede perjudicar a usuarios legítimos.

La única manera inequívoca de comprobar una dirección de correo electrónico es mandarle un link de un sólo uso.