Aujourd'hui, la plupart des sites redirigent le trafic HTTP vers HTTPS pour les requêtes vers leurs pages. Cependant, il n'en va pas de même pour les ressources (images, js, css). La plupart de ces ressources sont disponibles à la fois en HTTP et en HTTPS. Y a-t-il une raison particulière pour laquelle l'accès aux ressources via HTTP n'est pas redirigé comme c'est le cas pour les demandes de pages ? Pourquoi ne pas forcer le HTTPS partout ?
Réponses
Trop de publicités?Il est vrai que les ressources contenues dans les pages Web HTTPS doivent également être servies par HTTPS, mais il existe des raisons de ne pas essayer de forcer le serveur Web à pousser chaque demande vers HTTPS pour toutes les demandes HTTP entrantes pour ce domaine, mais de continuer à autoriser l'accès HTTP.
- Comme solution de secours en cas d'erreur de configuration https
- Pour supporter les clients qui n'ont pas de support https
- Il est préférable de laisser l'application du HTTPS pour les actifs dans le HTML servi par HTTPS à la couche d'application et de ne pas essayer de l'appliquer à la couche de configuration du serveur.
Cette question se pose aux personnes qui gèrent le Certbot / Let's Encrypt des outils pour créer des certificats SSL HTTPS gratuits et configurer le serveur Web Nginx ou Apache. Les serveurs Web fournissent des mécanismes pour forcer les clients qui demandent du http à se rediriger vers la version https.
Pour un usage général, il est probablement plus sûr et plus simple d'autoriser la redirection vers https et de forcer l'utilisation de https. Gardez simplement à l'esprit qu'il existe des cas qui peuvent nécessiter de s'écarter de cette valeur par défaut.
Les actifs ne doivent pas être inclus/référencés dans les pages HTTPS via HTTP. Ou reformulé :
Si vous construisez un site web qui est chargé via HTTPS todo son contenu doit être chargé via HTTPS également. Cela inclut les CSS, JS, images et autres, et même le contenu distant qui ne se trouve pas sur le même domaine.
Si ce n'était pas le cas, tout navigateur moderne informerait l'utilisateur que le site web n'est pas sécurisé en raison de l'utilisation d'un contenu mixte.
Les fournisseurs de sites web pourraient envisager de ne pas appliquer le passage de HTTP à HTTPS à ces éléments lorsqu'ils sont chargés seuls. Il pourrait s'agir d'une solution de repli et de ne pas obliger les utilisateurs qui utilisent le site Web en HTTP dès le départ à charger les ressources via HTTPS.
Mais je ne vois pas comment cela pourrait se produire, car tous les utilisateurs qui accèdent au site Web via HTTP sont redirigés vers HTTPS. Quoi qu'il en soit ... une décision étrange a été prise, probablement au cours de la phase initiale de l'adoption du HTTPS et ils pourraient s'en tenir à cette décision étrange.