Existe-t-il un moyen de détecter HTTP ou HTTPS et de forcer l'utilisation de HTTPS avec JavaScript ?
J'ai quelques codes pour détecter le HTTP ou HTTPS mais je ne peux pas le forcer à utiliser https:
.
J'utilise le protocole.de.localisation.de.la.fenêtre pour définir ce que le site est https:
puis rafraîchir la page pour espérer recharger une nouvelle URL https'ed dans le navigateur.
if (window.location.protocol != "https:") {
window.location.protocol = "https:";
window.location.reload();
}
20 votes
Ceci est géré de manière beaucoup plus fiable (et efficace) côté serveur.
3 votes
Je pense que vous avez raison. En tant qu'attaquant utilisant une attaque MITM, je pourrais simplement supprimer ce code. Il n'offre donc qu'une protection contre les attaques passives.
0 votes
La partie détection est une copie de Comment puis-je utiliser JavaScript du côté client pour détecter si la page a été cryptée ? de 2008.
1 votes
@NeoDevlin un attaquant MITM sur http peut également remplacer une redirection côté serveur.
1 votes
Exactement. En 2018, il n'y a aucune excuse pour ne pas utiliser le HSTS. C'est le seul moyen sûr de forcer le HTTPS.