Hice una solicitud POST a un sitio HTTP (no HTTPS), inspeccioné la solicitud en las Herramientas para desarrolladores de Chrome y descubrí que agregaba su propio encabezado antes de enviarlo al servidor:
Upgrade-Insecure-Requests: 1
Después de buscar Upgrade-Insecure-Requests
, solo puedo encontrar información sobre el servidor que envía este encabezado:
Content-Security-Policy: upgrade-insecure-requests
Esto parece relacionado, pero sigue siendo muy diferente, ya que en mi caso, el CLIENTE está enviando el encabezado en la Solicitud , mientras que toda la información que he encontrado se refiere al SERVIDOR que envía el encabezado relacionado en una Respuesta .
Entonces, ¿por qué Chrome (44.0.2403.130 m) se agrega Upgrade-Insecure-Requests
a mi solicitud y qué hace?
Actualización 2016-08-24:
Este encabezado se ha agregado desde entonces como una Recomendación del candidato del W3C y ahora se reconoce oficialmente.
Para aquellos que acaban de encontrar esta pregunta y están confundidos, la excelente respuesta de Simon East lo explica bien.
El Upgrade-Insecure-Requests: 1
encabezado solía estar HTTPS: 1
en el borrador de trabajo anterior del W3C y Chrome le cambió el nombre en silencio antes de que el cambio fuera aceptado oficialmente.
(Esta pregunta se hizo durante esta transición cuando no había documentación oficial sobre este encabezado y Chrome fue el único navegador que envió este encabezado).
fuente
Respuestas:
Respuesta corta: está estrechamente relacionada con el
Content-Security-Policy: upgrade-insecure-requests
encabezado de respuesta, lo que indica que el navegador lo admite (y de hecho lo prefiere).Me tomó 30 minutos de búsqueda en Google, pero finalmente lo encontré enterrado en la especificación W3.
La confusión se debe a que el encabezado en la especificación era
HTTPS: 1
, y así es como Chromium lo implementó, pero después de esto rompió muchos sitios web que estaban mal codificados (particularmente WordPress y WooCommerce) el equipo de Chromium se disculpó:Su solución fue cambiarle el nombre
Upgrade-Insecure-Requests: 1
y la especificación se ha actualizado para que coincida.De todos modos, aquí está la explicación de la especificación W3 (como apareció en ese momento) ...
fuente
a.com
y lo redirijo a ustedb.com
, mientras le proporciono este encabezadob.com
y le envío información. Si no está bajo un canal segurob.com
, ya puede ocurrir un ataque de rastreo, porque he enviado datosb.com
junto con mi solicitud. ¿Puede guiarnos a un escenario simple de cómo hace que las conexiones sean más seguras para los usuarios?Esto explica todo:
Fuente: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests
fuente