J'ai fait une demande POST à un site HTTP (non-HTTPS), j'ai inspecté la demande dans les outils de développement de Chrome et j'ai constaté qu'il ajoutait son propre en-tête avant de l'envoyer au serveur:
Upgrade-Insecure-Requests: 1
Après avoir fait une recherche Upgrade-Insecure-Requests
, je ne peux trouver que des informations sur le serveur qui envoie cet en- tête:
Content-Security-Policy: upgrade-insecure-requests
Cela semble lié, mais toujours très différent puisque dans mon cas, le CLIENT envoie l'en-tête dans la demande , alors que toutes les informations que j'ai trouvées concernent le SERVEUR envoyant l'en-tête associé dans une réponse .
Alors pourquoi Chrome (44.0.2403.130 m) ajoute-t-il Upgrade-Insecure-Requests
à ma demande et que fait-il?
Mise à jour 2016-08-24:
Cet en-tête a depuis été ajouté en tant que recommandation candidate du W3C et est maintenant officiellement reconnu.
Pour ceux qui viennent de tomber sur cette question et sont confus, l' excellente réponse de Simon East l'explique bien.
L'en- Upgrade-Insecure-Requests: 1
tête était HTTPS: 1
dans le précédent projet de travail du W3C et a été renommé discrètement par Chrome avant que le changement ne soit officiellement accepté.
(Cette question a été posée lors de cette transition alors qu'il n'y avait pas de documentation officielle sur cet en-tête et Chrome était le seul navigateur à avoir envoyé cet en-tête.)
Réponses:
Réponse courte: elle est étroitement liée à l'en-
Content-Security-Policy: upgrade-insecure-requests
tête de réponse, indiquant que le navigateur la prend en charge (et en fait la préfère).Il m'a fallu 30 minutes de recherche sur Google, mais je l'ai finalement trouvé enfoui dans la spécification W3.
La confusion vient du fait que l'en-tête de la spécification était
HTTPS: 1
, et c'est ainsi que Chromium l'a implémenté, mais après cela, de nombreux sites Web mal codés (en particulier WordPress et WooCommerce) ont été cassés, l'équipe Chromium s'est excusée:Leur correctif consistait à le renommer
Upgrade-Insecure-Requests: 1
et la spécification a depuis été mise à jour pour correspondre.Quoi qu'il en soit, voici l'explication de la spécification W3 (telle qu'elle apparaissait à l'époque) ...
la source
a.com
et vous redirige versb.com
, tout en fournissant cet en-têteb.com
et en envoyant des informations. Si vous n'êtes pas sous un canal sécuriséb.com
, une attaque par reniflement peut déjà se produire, car j'ai envoyé des données àb.com
côté de ma demande. Pouvez-vous nous guider vers un scénario simple montrant comment il rend les connexions plus sécurisées pour les utilisateurs?Cela explique le tout:
Source: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests
la source