La mayoría de los sistemas de restablecimiento de contraseñas implican enviar por correo electrónico al usuario un enlace único que le permite restablecer su contraseña. El token debe estar en la URL, ya que la mayoría de los clientes de correo electrónico no permiten que los correos electrónicos HTML realicen solicitudes POST, y pedirle al usuario que vuelva a escribir el token no es una experiencia aceptable. Sin embargo, esto pone el token en riesgo de fuga a través del encabezado del remitente.
Una posible solución para esto es evitar cualquier enlace externo en la página de restablecimiento de contraseña. Sin embargo, la mayoría de los sitios tienen una plantilla estándar que incluye enlaces externos (Facebook, Twitter, etc.) y no usar esta plantilla haría que la página pareciera extraña, y posiblemente los usuarios piensen que es un sitio de phishing.
Parece que los proveedores de navegadores son conscientes de este problema y algunos navegadores admiten la etiqueta de referencia meta, que puede ser se establece en "nunca" para que la URL nunca se filtre. Sin embargo, no todos los navegadores admiten esta etiqueta, por lo que no es una solución completa.
Entonces, ¿cómo crear un proceso de restablecimiento de contraseña que no tenga esta fuga?