Il y a eu beaucoup de discussions pendant que je cherchais comment rendre mon site https entier. La plupart des réponses ont consisté à rediriger http vers https (fichier .htaccess), ce qui n'est pas bon, car il n'est pas bon de faire deux fois le même travail (deux requêtes). De plus, "l'homme au milieu" prend d'abord http, et je veux que mon site passe directement sur https. Existe-t-il une autre façon de rendre votre site https entier, et comment le faire? Par exemple, lorsque l'utilisateur tape exemple.com, cet exemple.com passe automatiquement à https, sans rediriger depuis http ou autre chose en premier?
14
Réponses:
Non. Vous ne pouvez pas par magie faire en sorte que le navigateur du visiteur choisisse le bon protocole. Une redirection est le moyen de le faire.
la source
http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security permet à votre serveur d'indiquer que le domaine ne doit être accessible que via HTTPS. Cela ne s'applique qu'aux demandes suivantes, il y aurait donc une charge HTTP initiale, mais les demandes futures chargeraient HTTPS même si quelqu'un a explicitement tapé HTTP.
IE ne le prend pas encore en charge, mais toutes les autres majors le font.
la source
Comme d'autres l'ont dit, vous ne pouvez pas forcer les utilisateurs à choisir le bon protocole. Mais lorsque l'utilisateur essaie d'utiliser HTTP, que devez-vous faire? Une redirection est également insuffisante, car un attaquant assis entre vous et le client peut intercepter la redirection, de sorte que le client ne la voit jamais. Le client continuera d'envoyer du HTTP simple et l'attaquant supprimera la couche SSL du serveur ( attaque de suppression SSL ).
Le seul moyen sûr d'empêcher cela est de ne pas servir du tout HTTP . Ne répondez pas sur le port 80, sauf peut-être pour servir une page de texte brut demandant à l'utilisateur de réessayer avec HTTPS (mais sans fournir de lien, que l'attaquant pourrait manipuler). Cela forcera l'utilisateur à taper
https://
dans son navigateur, donc il initiera la connexion avec SSL et empêchera l'attaque MITM.la source
https://
. Au lieu de cela, ils vont dire "hein, le site est cassé" et partir. Le meilleur scénario pourrait être d'avoirwww.example.com
répondu à la fois à HTTP et HTTPS, mais à ce que l'application elle-même s'exécute sur quelque chose commeadmin.example.com
avec seulement HTTPS.Pas tout à fait vrai: comment utiliser DNS / noms d'hôte ou autres façons de résoudre une adresse IP spécifique: port
Il existe un moyen, mais la plupart des navigateurs n'implémentent pas rfc2782.
la source
ceejayoz a la meilleure réponse pour empêcher l'attaque spécifiquement mentionnée ici, mais je tiens également à souligner ce que beaucoup de gens manquent ici, c'est essentiellement que HTTP a déjà compris l'autre partie. Vous souhaitez effectuer une redirection 301 permanente. Cela indique au client de faire d'autres demandes à la nouvelle adresse. Donc oui, si quelqu'un tape la mauvaise URL, il fera 2 demandes MAIS, à l'avenir, un bon client est censé détecter les demandes vers cette URL et faire la bonne demande à la place pour éviter d'autres gaspillages. Le problème est que ce n'est que pour cette URL exacte. HSTS améliore ce schéma en disant également: «pour les n secondes suivantes également, n'autorisez aucune connexion non sécurisée à partir de ce domaine».
Les utilisateurs ne doivent pas visiter des sites sensibles à des endroits non sécurisés. Ils ne devraient surtout pas s'inscrire pour eux dans des endroits peu sûrs. Ce sont des principes de base de la sécurité des utilisateurs qui devraient être enseignés comme «n'ouvrez pas les pièces jointes à partir de sources non fiables». Qui sont vraiment la meilleure réponse pour prévenir les attaques MiM pour les sites qui n'ont jamais été visités.
Par ailleurs, certains navigateurs améliorent cela en disant également que certains sites connus utilisent toujours HSTS. Malheureusement, vous ne pouvez pas simplement vous ajouter facilement à cette liste.
Pour en savoir plus: http://coderrr.wordpress.com/2010/12/27/canonical-redirect-pitfalls-with-http-strict-transport-security-and-some-solutions/
http://dev.chromium.org/sts
la source