Ya que estás haciendo un redireccionamiento 301 a través de HTTP, alguien podría manejar esa conexión y redirigirte a cualquier lugar que quisieran, en particular, en realidad no podrían redirigirte en absoluto, y en lugar de eso se interponen entre tu computadora y https://login.example.com
, monitorea tu conexión y te sirve su contenido con el nombre http://login.example.com
en su lugar.
Una forma de mitigar esto es usar un encabezado HTTP HSTS: cuando el usuario carga su página por primera vez, le dice a su navegador que su sitio se cargará en HTTPS solo hasta una fecha futura (la directiva generalmente tiene una fecha de vencimiento fijada en el futuro lejano). Esto significa que una vez que el usuario se conecte a su sitio una vez a través de HTTPS, siempre lo hará en el futuro hasta la expiración de la directiva HSTS.
Esto deja un último escenario: digamos que el atacante MITM es la conexión ANTES de que el navegador del usuario vea el encabezado HSTS desde su servidor. En ese caso, el navegador del usuario nunca sabe que no debe usar conexiones que no sean HTTPS. Una forma de mitigar esto es incluir su sitio web en la lista de precarga de HSTS, lo que significa que los navegadores web se envían ya sabiendo que su sitio es solo para HTTPS. Chrome, Firefox, Safari, IE11 y Edge tienen una lista de precarga HSTS que incluye la Lista de precarga HSTS de Chrome y, en unos pocos pasos, también puede enviar su sitio: más información sobre la lista de precarga de Chrome HSTS .
Si coloca su sitio en la lista de precarga de HSTS y completa lo que eso conlleva, puede tener una seguridad razonable de que cualquiera que use nuevas versiones de esos navegadores no será vulnerable a un ataque de degradación MITM de HTTPS a HTTP por parte de un atacante casual.
Solo tenga en cuenta que una vez que su sitio esté en la lista de precarga de HSTS, no es muy rápido recuperarlo de los navegadores de todos, ya que cualquier navegador que no haya sido actualizado (nuevamente) esperará que su sitio se cargue solo a través de HTTPS.