¿Qué es una redirección 307?

El código de estado HTTP 307 Redirección Temporal desempeña un papel fundamental en el variado panorama de las redirecciones HTTP, marcando un desvío temporal en el camino entre una URL solicitada y su destino.
A diferencia de sus primos de la serie HTTP 3xx, el código de estado 307 está diseñado con un propósito específico: preservar el método HTTP utilizado en la solicitud inicial hasta la solicitud redirigida sin alteraciones.

Profundizar en la redirección temporal HTTP 307

El código de estado 307 Redirección temporal está definido por el Grupo de Trabajo de Ingeniería de Internet (IETF) para señalar que el recurso solicitado se ha trasladado temporalmente a una URI diferente.

El sitio de 10Web en la pestaña Red de Chrome devtools muestra una redirección 307 cada vez que un visitante intenta acceder a la versión no https de 10web.io.

Un aspecto clave de esta redirección es el requisito de que el agente de usuario (por ejemplo, el navegador web) mantenga el método de solicitud HTTP original en las solicitudes posteriores a la nueva URI.
Esta característica la distingue de otros códigos de redireccionamiento, que pueden permitir o provocar un cambio en el método de solicitud, normalmente de POST a GET.

Cómo funciona la redirección HTTP 3xx

En el mundo digital de la navegación web y la comunicación con el servidor, los códigos de estado HTTP 3xx sirven como balizas de navegación, guiando al navegador del usuario desde la URL solicitada a un nuevo destino.
Estos códigos de estado, que empiezan con el número «3», forman parte de la respuesta HTTP (Protocolo de Transferencia de Hipertexto) que un servidor devuelve al navegador, indicando que se requiere una forma de redirección.
La «xx» en «3xx» representa una gama de números, cada uno de los cuales corresponde a diferentes tipos de redirecciones diseñadas para manejar escenarios específicos en el vasto ecosistema de la web.

La redirección, en esencia, es un proceso por el que un servidor web informa a un cliente (normalmente un navegador web) de que el recurso que busca reside en una URL diferente.
Cuando el servidor envía una respuesta con un código de estado 3xx, también incluye una cabecera `Location`, que apunta a la nueva URL donde se puede encontrar el recurso solicitado.
Este mecanismo garantiza que los usuarios y los rastreadores web sean redirigidos sin problemas a la ubicación correcta, tanto si el traslado es temporal como permanente.

Este proceso de redireccionamiento automático no sólo ayuda a mantener la fluidez de la navegación web, sino que también desempeña un papel crucial en el mantenimiento del sitio, las estrategias SEO y la experiencia del usuario, al garantizar que los recursos sigan siendo accesibles aunque cambie su ubicación.

Códigos únicos para diferentes casos de uso

Cada redirección 3xx tiene su propia aplicación e implicaciones.
Por ejemplo, un »
301 Movido permanentemente» se utiliza para indicar que un recurso se ha reubicado permanentemente en una nueva URL, avisando a los motores de búsqueda para que actualicen su indexación. Por otro lado, una «Redirección temporal 307» mantiene el método de petición HTTP original para la nueva petición a la URL redirigida, por lo que es ideal para situaciones en las que el método no debe alterarse, como mantener una petición POST durante el proceso de redirección.

En esencia, las redirecciones HTTP 3xx son un aspecto fundamental de la estructura de navegación de la Web, que proporciona flexibilidad y control sobre la accesibilidad a los recursos y garantiza un flujo coherente del tráfico en el paisaje de Internet, en constante evolución.

El espectro de las redirecciones HTTP 3xx

La norma HTTP 1.1 introdujo códigos de redireccionamiento más matizados para abordar escenarios específicos, incluido el 307 Redireccionamiento temporal.
Esta adición proporcionó un mecanismo más claro para las reubicaciones temporales, especialmente en casos en los que mantener el método de solicitud original es crucial, abordando así las ambigüedades asociadas a códigos anteriores como
302 Encontrado.

Las variaciones entre las diferentes implementaciones de navegador de este error incluyen la respuesta 307 Redirección interna.
Es posible que veas un mensaje similar dependiendo de tu navegador y sistema operativo.

Elegir entre la redirección 302, 303 y 307

La elección entre utilizar 302 Encontrado, 303 Ver Otro y 307 Redirección Temporal depende del resultado deseado con respecto al método de solicitud en el proceso de redirección.
La Redirección Temporal 307 es el código de estado a utilizar cuando el objetivo es garantizar que el método permanece inalterado, ofreciendo un resultado más predecible y
seguro para redirecciones temporales sin alteración del método.

Alternativamente, si necesitas cambiar el método a GET, la redirección 303 Ver otro podría ser una mejor opción.
Muchos navegadores tratan las redirecciones de estado 302 como un 303, lo que puede crear problemas si necesitas redirigir sin cambiar el método.

El cambio de 301 a 307 Redirecciones Internas

Tradicionalmente, la redirección HTTP 301 «Movido permanentemente» ha sido la opción más utilizada para indicar un cambio permanente en la ubicación de un recurso.
Sin embargo, aunque son eficaces para redirigir el tráfico, las redirecciones 301 conllevan una vulnerabilidad inherente a los ataques del Hombre en el Medio (MITM), exponiendo a los sitios web a posibles riesgos de seguridad.

Google.com muestra un código de estado 304 y 302 en Chome devtools.

Un ataque Man-in-the-Middle se produce cuando un actor malicioso intercepta y posiblemente altera la comunicación entre el navegador de un usuario y un servidor web sin el conocimiento de ninguna de las partes.
Cuando un usuario intenta acceder a un sitio a través de una conexión HTTP insegura, la redirección 301 a la versión segura HTTPS se produce a través de la red.
Este punto de transición puede ser aprovechado por los atacantes para secuestrar el proceso de redireccionamiento, redirigiendo a los usuarios a un sitio de phishing o espiando la comunicación, todo ello manteniendo la apariencia de un redireccionamiento legítimo.

Esta vulnerabilidad subraya la necesidad de un enfoque más seguro de la redirección, especialmente para los sitios que imponen el acceso sólo HTTPS.
Aparece la «Redirección interna» HTTP 307, una respuesta que proporciona un método fortificado de redirección, especialmente cuando se combina con HTTP Strict Transport Security (HSTS).
A diferencia de la redirección 301, que indica a los navegadores que obtengan el recurso desde una nueva ubicación, el código de estado 307 conserva el método de solicitud original y es utilizado internamente por los navegadores para reforzar las conexiones seguras.

10Web.io en la pestaña Red de Chrome DevTools mostrando las cabeceras con el método de solicitud GET, el código de estado de redirección interna 307 y la cabecera de respuesta HSTS.

La Redirección Interna 307 brilla por su capacidad de trabajar en tándem con HSTS, un mecanismo de política que ordena a los navegadores convertir automáticamente todos los intentos de conexión HTTP a HTTPS, eliminando así la solicitud insegura inicial que hace que las redirecciones 301 sean vulnerables a los ataques MITM.
Cuando se accede a un sitio a través de HTTP, y HSTS está en funcionamiento, los navegadores modernos realizan una Redirección Interna 307 a la versión HTTPS del sitio antes de que se realice cualquier solicitud de red.
Este paso preventivo cierra eficazmente la ventana de oportunidad para que los atacantes intercepten el proceso de redireccionamiento, mejorando la seguridad de los datos del usuario y manteniendo la integridad de la comunicación del sitio.

En esencia, aunque las redirecciones 301 han servido bien a la web para gestionar los cambios permanentes de URL, la evolución de las amenazas a la seguridad hace necesario un cambio hacia prácticas de redireccionamiento más seguras.
La redirección interna 307, sobre todo cuando se utiliza como parte de una política HSTS, surge como una opción superior para proteger los sitios contra las vulnerabilidades de los ataques Man-in-the-Middle, marcando un paso fundamental en el esfuerzo continuo por asegurar la web.

¿Qué es HSTS (Seguridad Estricta en el Transporte)?

HTTP Strict Transport Security (HSTS) es una función de seguridad que indica a los navegadores web que sólo interactúen con un sitio web a través de una conexión segura HTTPS, en lugar de utilizar la menos segura HTTP.
Esta sencilla pero potente cabecera de respuesta se convierte en una clave importante en la seguridad de la web, garantizando que todas las comunicaciones entre un navegador y el sitio web estén encriptadas y a salvo de fisgones.

¿Por qué los sitios web utilizan HSTS?

En la era digital, proteger los datos de los usuarios es primordial.
Los sitios web que manejan información sensible -como credenciales de acceso, datos personales e información de pago- necesitan una capa adicional de seguridad para protegerse de posibles ciberamenazas.
Aquí es donde entra en juego HSTS:

  • Evita los Ataques de Degradación: Sin HSTS, los atacantes podrían explotar vulnerabilidades para forzar una conexión a degradarse de HTTPS a HTTP, interceptando y potencialmente alterando los datos enviados entre un usuario y un sitio web.
  • Bloquea el Secuestro de Cookies: Al garantizar una conexión segura, HSTS ayuda a impedir que los atacantes secuestren las cookies de sesión, que de otro modo podrían utilizarse para obtener acceso no autorizado a cuentas de usuario.

La importancia de las listas de precarga

Aunque HSTS mejora significativamente la seguridad de los sitios web, su protección comienza sólo después de que un usuario visita por primera vez un sitio y recibe la cabecera HSTS.
Esta visita inicial, si se realiza a través de una conexión insegura, deja una ventana de vulnerabilidad abierta a la explotación.
La precarga aborda esta laguna.

La precarga es un proceso en el que los sitios web se incluyen en una lista de precarga que viene incorporada en los navegadores.
Cuando un sitio está en esta lista, los navegadores saben automáticamente que sólo deben conectarse a él utilizando HTTPS, incluso en la primera visita.
Esto cierra eficazmente la brecha y garantiza una comunicación cifrada de extremo a extremo desde el primer momento.

Principales ventajas de la precarga:

  • Protección Inmediata: Desde el momento en que un usuario accede por primera vez a un sitio precargado, su conexión es segura, eliminando el riesgo de la solicitud inicial insegura.
  • Confianza reforzada: Saber que un sitio está precargado puede dar a los usuarios una mayor confianza en su compromiso con la seguridad.
  • Eficacia universal: Una vez que un sitio se añade a la lista de precarga, todos los navegadores que la tengan aplicarán HSTS para él, garantizando una seguridad coherente en las distintas plataformas.

Sin embargo, la precarga no es una decisión que deba tomarse a la ligera.
Una vez precargado un sitio, eliminarlo de la lista es un proceso lento y engorroso.
Es crucial que los propietarios de sitios web se comprometan plenamente con el acceso sólo HTTPS antes de optar por la precarga, ya que representa un compromiso de seguridad importante y a largo plazo.

Añadir tu sitio a las listas de precarga HSTS

La lista de precarga HSTS es una lista de dominios incrustados en los navegadores web que están codificados para utilizar HTTPS en todas las conexiones.
Los dominios de esta lista utilizan automáticamente HTTPS incluso en la primera visita, sin necesidad de que la petición HTTP inicial redirija a HTTPS.

Hay dos formas principales de añadir tu sitio a la lista de precarga HSTS: enviándolo al directorio de la lista de precarga o añadiendo la directiva de precarga en la cabecera HSTS.

Envío a un directorio de listas de precarga HSTS

  1. Asegúrate de que tu sitio está configurado para servir todo el contenido a través de HTTPS y puede redirigir automáticamente todo el tráfico HTTP a HTTPS.
  1. Implementa la siguiente cabecera HSTS en todo tu dominio:
    Strict-Transport-Security: max-age=63072000; includeSubDomains; preload

    Este encabezado indica a los navegadores que sólo se debe acceder a tu sitio utilizando HTTPS, aplica esta política a todos los subdominios y solicita la inclusión en la lista de precarga.
    Asegúrate de que todos tus subdominios se sirven a través de HTTPS antes de añadir la directiva `includeSubDomains`.

  2. Antes de enviar tu sitio, utiliza herramientas online como Security Headers para comprobar si tu sitio implementa correctamente el encabezado HSTS.
  1. Ir a hstspreload.org e introduce tu nombre de dominio.
    Sigue las instrucciones para enviar tu sitio.
    El sitio verificará tu cabecera HSTS y, si todo está en orden, te permitirá enviar tu dominio para la precarga.

Añadir el campo Cabecera a tu sitio

Si optas por no enviar tu sitio a través del sitio web hstspreload.org, puedes seguir aplicando HSTS añadiendo la directiva de precarga en el encabezado HSTS.
Sin embargo, este método no añade tu sitio a las listas de precarga de los navegadores, sino que indica a los navegadores que admiten la directiva de precarga que traten tu dominio como si estuviera en la lista.

Redirecciones HTTP 307 e implicaciones SEO

En el ámbito de la optimización de motores de búsqueda (SEO), la naturaleza temporal de la redirección 307 significa que no pasa «jugo de enlaces» ni hace que los motores de búsqueda actualicen sus índices con la nueva URL.
Sin embargo, su correcta aplicación, sobre todo para mantener una navegación segura y fácil del sitio, apoya indirectamente los objetivos de SEO al garantizar una experiencia de usuario fluida y segura.

Conclusión

El código de estado HTTP 307 Redirección temporal es una herramienta vital en el arsenal del desarrollador web, ya que proporciona una opción segura y que preserva el método para gestionar las redirecciones temporales del sitio.
Su uso adecuado garantiza que los usuarios y sus datos sean guiados sin problemas y de forma segura a través de la web en constante evolución, lo que refuerza la importancia de comprender e implementar los códigos de estado HTTP con precisión y cuidado.

Say goodbye to website errors

Share article

Leave a comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Your email address will never be published or shared. Required fields are marked *

Comment*

Name *