Joomladay francophone 2019 à Paris, les 8 et 9 mars 2019

Activer le HSTS : pourquoi et comment

Réduire
X
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Activer le HSTS : pourquoi et comment

    Bonsoir,

    Dernier post de la soirée pour défaire la bobine qu'était devenu ce fil de conversation

    De l'intérêt et de la méthode d'activer le HSTS :

    A ce sujet, Daneel écrit :
    Une fois l'ordre respecté dans le htaccess (https puis www), on peut envisager de renforcer la sécurité en activant HSTS.
    Il suffit généralement d'ajouter cette ligne dans le fichier htaccess :
    Code:
    Code:
    Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
    puis de tester à nouveau via https://hstspreload.org/

    Pourquoi respecter cet ordre et activer le HSTS ?

    Il y a toujours un laps de temps dans une redirection 301. Si la redirection est en http, il y a également un risque de sécurité d'où la nécessité d'avoir la règle HTTPS en premier. HSTS est une indication dans le header pour forcer la navigateur à charger immédiatement la page en https en ignorant tout appel http donc impossible aux pirates de détourner l'échange crypté.

    De plus, les navigateurs et Google poussent les créateurs de sites à accentuer la sécurité et optimiser le temps de chargement de leurs pages web. HSTS accélère le chargement en supprimant ce laps de temps même si ce dernier ne représente que quelques millisecondes.

    Comment ?

    La première règle dans le htaccess étant de passer de http à https avant de charger le header de la page. Pour supprimer ce temps, Il existe une liste de pré-chargement de site web développé par Chrome et désormais utilisé par la plupart des navigateurs ( https://caniuse.com/#feat=stricttransportsecurity ).

    Pour faire partie de cette fameuse liste, pas besoin d'être un grand site ou un expert VIP, il suffit simplement d'être validé avec le test sur https://hstspreload.org/puis d'accepter de faire partie de cette liste sur ce même site. Vous serez alors sur liste d'attente et ensuite accepté si votre site, votre nom de domaine (et sous-domaines) respectent toutes les conditions requises. Attention, vous pouvez annuler votre inscription mais cela peut prendre beaucoup plus de temps. En gros, il est difficile de faire machine arrière mais le gain est réel.
    Ce sujet me paraissait intéressant, mais il devenait difficile de développer au sein du fil initial.
    C'est pourquoi je le re-pose ici afin qu'on puisse échanger à ce propos uniquement.

    A vous lire,
    Bonne soirée.

    Florence
    --

  • #2
    bonjour, quelle est la question ?
    pourquoi activer hsts ? pour que les navigateurs forcent directement le chargement de la page via https meme si l utilisateur entre une adresse http.
    Cela leur fait comprendre que seul l url en https doit etre utilisée, et ce meme si une url htttp est utilsée pour acceder à ton site.
    La première url vers ton domaine entrée en http sera traitée et renvoyée vers https, les suivantes seront envoyée directement en https ce qui evites des requetes inutiles.
    Cela viens en complément de la redirection du htaccess.

    Par contre, dans la ligne que donnes daneel, il manques un argument pour utiliser la liste préchargée.
    Code:
    Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
    devrait être
    Code:
    Header set Strict-Transport-Security "max-age=31536000" env=HTTPS ; preload
    On peut inclure cette politique pour les sous domaines en utilisant la ligne de code ci dessous. Cela est preferable car cela limites les attaques sur ce protocole.
    [CODE]
    Code:
      Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
    https://www.owasp.org/index.php/HTTP...ty_Cheat_Sheet

    Sur un serveur vps ou dédié, il est preferable de mettre cette ligne (ainsi que le contenu du fichier .htaccess) directement dans l'hote virtuel (virtualhost) pour obtenir un gain de performance.
    https://linux-audit.com/configure-hs...-apache-nginx/
    Faire partie de cette liste n'est pas une obligation pour activer hsts, mais quand on en fait partie le navigateur utilise directement https sans avoir besoin de faire de requetes supplémentaires

    Dernière édition par lefabdu51 à 21/11/2018, 11h59
    Mon site en cours de construction avec de nouvelles catégories de documents...
    https://informaticien51.fr

    Commentaire


    • #3
      Bonjour.

      Pour info, ce code (Strict-Transport-Security: max-age=31536000; includeSubDomains; preload), sous cette forme, renseignée par dans mon htaccess à planté le site, page blanche avec une erreur… La syntaxe semble ne pas être acceptée. Si on insère cette ligne comme telle dans l'édition manuelle du htaccess par l'option d'aeSecure, il nous indique de suite une erreur de syntaxe.

      Mais j'ai p'tet mal pigé quelque chose…
      Cordialement.
      __
      Eddy !!!
      Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

      Commentaire


      • #4
        Hello

        P'tet bien que oui... ;-)

        Voici une portion de mon propre .htaccess.

        Code:
        <IfModule mod_headers.c>
           # Force HTTPS (don't use this if you're still on http)
            Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"  env=HTTPS
        </IfModule>
        Bonne soirée.
        Christophe (cavo789)
        Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)
        Développeur de marknotes, logiciel de gestion de prises de notes avec interface web et de multiples convertisseur https://github.com/cavo789/marknotes
        Mes logiciels OpenSource : https://www.avonture.be
        Les 8 et 9 mars prochain ? J'peux pas, j'ai JoomlaDay 2019 #jd19fr (plus d'infos)

        Commentaire


        • #5
          Bonjour,
          Le code donné par cavo789 ne provoque pas d'erreur sur la page mais ne suffit pas à valider le HSTS via le site https://hstspreload.org/

          Error: No HSTS headerResponse error: No HSTS header is present on the response.
          Tout comme pour Eddy, il y a peut être un truc que je n'ai pas compris ...
          "Si vous n’êtes pas impliqués émotionnellement dans ce que vous créez, laissez tomber."
          https://www.graphiquedesign-bf.com/

          Commentaire


          • #6
            Je répondais au message d'Eddy, je n'ai pas prétendu dire qu'il suffisait de mettre cette seule ligne (je parlais de portion de....)
            Christophe (cavo789)
            Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)
            Développeur de marknotes, logiciel de gestion de prises de notes avec interface web et de multiples convertisseur https://github.com/cavo789/marknotes
            Mes logiciels OpenSource : https://www.avonture.be
            Les 8 et 9 mars prochain ? J'peux pas, j'ai JoomlaDay 2019 #jd19fr (plus d'infos)

            Commentaire


            • #7
              Envoyé par cavo789 Voir le message
              Je répondais au message d'Eddy, je n'ai pas prétendu dire qu'il suffisait de mettre cette seule ligne (je parlais de portion de....)
              Merci cavo789.
              En fait, Daneel a une nouvelle fois trouvé le moyen de titiller ma curiosité et je l'en remercie !
              J'ignore pourquoi ses posts me font cet effet mais il y a quelques minutes encore, je n'avais jamais entendu parler de HSTS et je me suis dit que je pourrais continuer à ignorer cela et me reposer et me divertir ou finir ma journée en apprenant un nouveau truc. Je ne pense pas être le seul à apprécier sa générosité et à y réagir aussi positivement, d'une manière aussi productive.

              En fait, j'ai réussi à modifier l'ordre des syntaxes rewrite dans mon fichier .htaccess en passant le forcing https en premier. Cela est validé par le site https://hstspreload.org/
              Maintenant, il me reste à placer l'en-tête HSTS et là, j'ai tenté de plusieurs manières d'y arriver via le fichier .htaccess en partant de la syntaxe donnée par lefabdu51, mais celle ci provoque chez moi également une erreur sur la page. Je me demande d'ailleurs si c'est bien sur le fichier .htaccess qu'il faut agir. Voilà où j'en suis.
              "Si vous n’êtes pas impliqués émotionnellement dans ce que vous créez, laissez tomber."
              https://www.graphiquedesign-bf.com/

              Commentaire


              • #8
                Hello,

                GraphiqueDesign Mille Mercis !!! Cela me touche

                Pour ce qui est de la ligne que l'on ajoute au fichier htaccess, effectivement je n'ai pas mis la directive "preload" car elle est nécessaire uniquement pour la validation.

                Si on veut être précis et vérifier la présence du module header, ces trois lignes fonctionnent (déjà testé) à copier en premier dans le fichier htaccess.
                (Déjà donné par Christophe)

                Code:
                 <IfModule mod_headers.c>
                Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
                </IfModule>
                En fait, je souhaite revenir sur l'importance de l'ordre entre la sécurisation https et l'url avec ou sans www ( je sais, je suis un peu casse-pied avec ça ! )
                https://forum.joomla.fr/forum/joomla...s-le-bon-ordre

                Si on interroge https://hstspreload.org/ sur des sites connus ( vous pouvez tester librement ) :

                on prends l'exemple de joomla.fr :



                Aie Aie ... Je suis encore surpris que l'on peut faire de cette erreur, qui peut être considérée comme un problème de sécurité pour certains.
                surtout que dans certains cas de figure, HSTS est activé mais inutile... bref, ce n'est pas très difficile de corriger le problème !

                Au final, vous devez obtenir l'information suivante (testé sur un site joomla qui n'est pas encore présent dans la liste...)



                Bon courage et n'hésitez pas à nous indiquer si votre site est ok ou dans la liste d'attente
                Dernière édition par daneel à 23/11/2018, 01h29
                Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

                Commentaire


                • #9
                  Je viens de tester mon site joomxtensions.com avec ce code en début de .htaccess :
                  <IfModule mod_headers.c>
                  # Force HTTPS (don't use this if you're still on http)
                  Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
                  </IfModule>
                  RewriteEngine On
                  RewriteCond %{SERVER_PORT} ^80$ [OR]
                  RewriteCond %{HTTPS} =off
                  RewriteRule ^(.*)$ https://joomxtensions.com/$1 [R=301,L]
                  RewriteCond %{HTTP_HOST} ^joomxtensions.com [NC]
                  RewriteRule ^(.*)$ https://www.joomxtensions.com/$1 [R=301,L]
                  Résultat :
                  Response error: No HSTS header is present on the response.
                  Quelle erreur ai-je faite ?
                  "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide). MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info hébergés chez PHPNET - +sites gérés chez 1and1 et OVH - Site pro : www.robertg-conseil.fr

                  Commentaire


                  • #10
                    Bonjour

                    J'ai utilisé le code de Cavo et celui de Daneel et ça fonctionne parfaitement :

                    #Uncomment if want to force HTTPS and if your server can handle it
                    # verification cond-rule HTTPS en premier
                    RewriteCond %{HTTPS} off
                    RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]

                    # puis cond-rule pour la redirection www
                    RewriteCond %{HTTP_HOST} ^monsite.fr [NC]
                    RewriteRule ^(.*)$ https://www.monsite.fr/$1 [L,R=301,NC]


                    <IfModule mod_rewrite.c>

                    RewriteEngine On

                    RewriteCond %{HTTPS} !on
                    RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

                    RewriteCond %{HTTP_HOST} !^www\. [NC]
                    RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

                    </IfModule>


                    <IfModule mod_headers.c>
                    # Force HTTPS (don't use this if you're still on http)
                    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
                    </IfModule>

                    Je précise que j'ai supprimé cette partie du code de Aesecure pour que ça fonctionne:

                    #AESECURE_WITHORNOTWWW_START
                    #aeSecure 7.2

                    # Redirect non-www to www pages, avoid duplicate content. Add prefix

                    <IfModule mod_rewrite.c>

                    RewriteEngine On

                    RewriteCond %{REQUEST_URI} !/aesecure/.*$

                    RewriteCond %{HTTP_HOST} !^www\.

                    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

                    </IfModule>
                    #AESECURE_WITHORNOTWWW_END


                    Merci à eux
                    Dernière édition par domallia à 22/11/2018, 21h00

                    Commentaire


                    • #11
                      Bonsoir

                      Je viens de tester aussi sur mon site (mon nom de famille suivi de .be) et j'ai aussi "Response error: No HSTS header is present on the response."

                      Toutefois si je retire la redirection www. pour ne garder que la redirection https, là, il est tout content et tout vert.

                      Il semble *exiger* qu'on teste avec son nom de domaine et pas avec un sous-domaine même si ce dernier est www.

                      Je vais encore un peu chercher, juste par curiosité car, bien sûr, pas question de ne pas rediriger vers www. juste pour que le site hsts preload soit content ;-)


                      Christophe (cavo789)
                      Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)
                      Développeur de marknotes, logiciel de gestion de prises de notes avec interface web et de multiples convertisseur https://github.com/cavo789/marknotes
                      Mes logiciels OpenSource : https://www.avonture.be
                      Les 8 et 9 mars prochain ? J'peux pas, j'ai JoomlaDay 2019 #jd19fr (plus d'infos)

                      Commentaire


                      • #12
                        En ce qui me concerne, j'ai bien testé joomxtensions.com sans le www
                        Donc je ne comprends pas le message de réponse du site de test
                        "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide). MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info hébergés chez PHPNET - +sites gérés chez 1and1 et OVH - Site pro : www.robertg-conseil.fr

                        Commentaire


                        • #13
                          On ne sait pas compris Robert : quand tu testes joomxtensions.com, tu as une redirection vers www.; redirection qui est faite par l'entremise de ton .htaccess. Il faut "briser" cette programmation pour ne plus que rediriger http vers https et, alors, tu n'auras plus le message d'erreur.
                          Christophe (cavo789)
                          Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)
                          Développeur de marknotes, logiciel de gestion de prises de notes avec interface web et de multiples convertisseur https://github.com/cavo789/marknotes
                          Mes logiciels OpenSource : https://www.avonture.be
                          Les 8 et 9 mars prochain ? J'peux pas, j'ai JoomlaDay 2019 #jd19fr (plus d'infos)

                          Commentaire


                          • #14
                            OK Christophe, mais ensuite si je teste www.joomxtensions.com, j'ai une nouvelle erreur. C'est une histoire de fou !
                            Si je supprime les deux dernières lignes qui forcent le passage en https://www. j'ai bien une validation pour joomxtensions.com, si je teste www.extensions.com, il me répond que c'est un sous-domaine et que je dois d'abord valider sans www... Bref, j'ai l'air d'un c.n !
                            Si je les remets pour tester www.joomxtensions.com, le site de test demande à ce que je teste dans, alors que le code inclut les sous-domaines, donc sur mon site pour lequel j'ai décidé de garder les www, ou sur tout autre sous-domaine, je n'aurai jamais de validation.
                            La question est donc double : qui se préoccupe de ce code et à quoi sert ce site de test s'il n'est pas capable de reconnaître le hsts sur un sous-domaine ?
                            "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide). MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info hébergés chez PHPNET - +sites gérés chez 1and1 et OVH - Site pro : www.robertg-conseil.fr

                            Commentaire


                            • #15
                              Bonjour

                              La nuit derrière moi, les idées un peu mieux en place, cela me fait dire que ce site ne fait jamais que tester le domaine principal et le but du jeu est de dire "tout les sous-domaines sur ce domaine-là seront en https". Du coup, l'outil n'a pas besoin de tester un sous-domaine (même s'il se nomme www).

                              Mais, comme les bons élèves SEO forcent le www, alors on est un peu embêté avec cet outil-là.

                              Il faudrait forcer la version non www. pour qu'il soit content.

                              Mais en non www, là, c'est souvent les outils comme CloudFlare (les CDNs) qui ne sont alors pas content.

                              Ceci est l'état de mon interprétation ce matin ;-)
                              Christophe (cavo789)
                              Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)
                              Développeur de marknotes, logiciel de gestion de prises de notes avec interface web et de multiples convertisseur https://github.com/cavo789/marknotes
                              Mes logiciels OpenSource : https://www.avonture.be
                              Les 8 et 9 mars prochain ? J'peux pas, j'ai JoomlaDay 2019 #jd19fr (plus d'infos)

                              Commentaire

                              Annonce

                              Réduire
                              1 sur 2 < >

                              C'est [Réglé] et on n'en parle plus ?

                              A quoi ça sert ?
                              La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                              Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                              Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                              Comment ajouter la mention [Réglé] à votre discussion ?
                              1 - Aller sur votre discussion et éditer votre premier message :


                              2 - Cliquer sur la liste déroulante Préfixe.

                              3 - Choisir le préfixe [Réglé].


                              4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                              2 sur 2 < >

                              Assistance au forum - Outil de publication d'infos de votre site

                              Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                              Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                              Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                              UTILISER À VOS PROPRES RISQUES :
                              L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                              Problèmes connus :
                              FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                              Installation :

                              1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                              Archive zip : https://github.com/AFUJ/FPA/zipball/master

                              2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                              3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                              4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                              5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                              6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                              et remplacer www. votresite .com par votre nom de domaine


                              Exemples:
                              Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/
                              Pour executer le script: http://www..com/fpa-fr.php

                              Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/cms/
                              Pour executer le script: http://www..com/cms/fpa-fr.php

                              En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                              Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                              Voir plus
                              Voir moins

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X