Fiz uma solicitação POST para um site HTTP (não HTTPS), inspecionei a solicitação nas Ferramentas do desenvolvedor do Chrome e descobri que ele adicionava seu próprio cabeçalho antes de enviá-lo ao servidor:
Upgrade-Insecure-Requests: 1
Depois de fazer uma pesquisa Upgrade-Insecure-Requests
, só consigo encontrar informações sobre o servidor que está enviando este cabeçalho:
Content-Security-Policy: upgrade-insecure-requests
Isso parece relacionado, mas ainda muito diferente, pois no meu caso, o CLIENTE está enviando o cabeçalho na solicitação , enquanto todas as informações que encontrei são relativas ao SERVIDOR enviando o cabeçalho relacionado em uma resposta .
Então, por que o Chrome (44.0.2403.130 m) está sendo adicionado Upgrade-Insecure-Requests
à minha solicitação e o que faz?
Atualização 2016-08-24:
Desde então, esse cabeçalho foi adicionado como uma recomendação de candidato do W3C e agora é oficialmente reconhecido.
Para quem acabou de se deparar com essa pergunta e está confuso, a excelente resposta de Simon East explica bem.
O Upgrade-Insecure-Requests: 1
cabeçalho costumava estar HTTPS: 1
no rascunho de trabalho anterior do W3C e foi renomeado silenciosamente pelo Chrome antes que a alteração fosse oficialmente aceita.
(Essa pergunta foi feita durante essa transição quando não havia documentação oficial nesse cabeçalho e o Chrome foi o único navegador que enviou esse cabeçalho.)
fonte
Respostas:
Resposta curta: está intimamente relacionada ao
Content-Security-Policy: upgrade-insecure-requests
cabeçalho da resposta, indicando que o navegador suporta (e de fato o prefere).Levei 30 minutos de busca no Google, mas finalmente a encontrei enterrada na especificação W3.
A confusão veio porque o cabeçalho da especificação era
HTTPS: 1
, e foi assim que o Chromium a implementou, mas depois disso quebraram muitos sites que eram mal codificados (principalmente WordPress e WooCommerce), a equipe do Chromium pediu desculpas:A solução foi renomear
Upgrade-Insecure-Requests: 1
e, desde então, as especificações foram atualizadas para corresponder.De qualquer forma, aqui está a explicação da especificação W3 (como apareceu na época) ...
fonte
a.com
e redireciono vocêb.com
, fornecendo esse cabeçalhob.com
e enviando algumas informações. Se você não estiver em um canal segurob.com
, já pode ocorrer um ataque de sniffing, porque enviei dados parab.com
acompanhar minha solicitação. Você pode nos guiar para um cenário simples de como isso torna as conexões mais seguras para os usuários?Isso explica a coisa toda:
Fonte: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests
fonte