Voy a oponerme a la tendencia aquí y diré que es aceptable redireccionar así.
Es cierto que un usuario es vulnerable a MITM si va a enlace y continúa usando el sitio sin más controles de certificados , URLs, etc.
Sin embargo, este es un problema del comportamiento del usuario, y no es algo que pueda arreglarse en el servidor.
Solo pensemos por un minuto cómo podría intentar arreglar este lado del servidor. En lugar de emitir un redireccionamiento, puede mostrar una página informativa, tal vez con una advertencia fuertemente redactada "Para acceder a este sitio de forma segura, debe usar enlace " O puede hacer que el servidor web solo escuche en el puerto 443 y rechace el puerto 80.
Ahora, ¿qué sucede si un atacante tiene el control total de la red de un usuario? Cuando el usuario accede a enlace , el atacante los redirige a enlace y presenta una página de phishing. O tal vez insertan una página de phishing directamente en enlace De cualquier manera, un usuario experimentado y alerta podría detectar esto, pero muchos usuarios continuarán.
No importa el comportamiento real de enlace : el atacante puede hacer lo que quiera.
Así que, en última instancia, se trata de un problema de capacitación del usuario. Y el comportamiento del sitio puede influir en esto. La gran mayoría de las veces que un usuario visita el sitio, visitará el sitio real y no un ataque MITM. Si el sitio los redirige automáticamente, esto no hace nada para desalentarlos a usar la URL de http en el futuro. Si reciben un mensaje de advertencia, o el sitio simplemente no funciona, aprenderán rápidamente a usar los https de forma predeterminada.
¿Pero qué tan responsable eres como operador de sitio para capacitar a tus usuarios de esta manera? La realidad es que la gran mayoría de los sitios redireccionan de http a https de esta manera. Desde un punto de vista empresarial, ¿por qué hacer que su sitio sea más difícil de usar que los competidores? Si solo estás haciendo esto, ¿realmente vas a tener un efecto en el comportamiento general del usuario?
Por esas razones, en general, recomiendo que la mayoría de los sitios redirijan de http a https de esta manera.
Para bloquear esto tanto como sea posible, te recomiendo que configures la redirección para que enlace redirija a enlace - eliminando el resto de la URL.