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-Requestsa 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: 1encabezado 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-requestsencabezado 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: 1y 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.comy lo redirijo a ustedb.com, mientras le proporciono este encabezadob.comy le envío información. Si no está bajo un canal segurob.com, ya puede ocurrir un ataque de rastreo, porque he enviado datosb.comjunto 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