Sécurisation : https://securityheaders.io

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

  • [Suggestion] Sécurisation : https://securityheaders.io

    Quelle est votre politique de sécurité pour les entêtes de réponse http ?

    Quand je teste certains sites joomla via https://securityheaders.io/

    J'ai beaucoup de mauvaises surprises et celui qui sort du lot honorablement, c'est le site d'aesecure :


    Si on se concentre sur les problèmes, on a 5 points prioritaires à vérifier :
    - Content-Security-Policy
    - X-Frame-Options
    - X-XSS-Protection
    - X-Content-Type-Options
    - Referrer-Policy

    Pour ma part, j'ai trouvé quelques articles intéressants sur ce sujet :

    - https://openweb.eu.org/articles/content-security-policy
    - http://www.trucsweb.com/tutoriels/securite/csp/
    - https://www.lexsi.com/securityhub/en...-ses-echanges/
    - je n'ai pas trouvé d'extension mais un outil pour créer la CSP : https://report-uri.io/home/tools
    - Eligibilité HSTS : https://hstspreload.org/

    Si vous connaissez une info sur ce sujet autour (et exemples autour de joomla), n'hésitez pas à partager
    Dernière édition par daneel à 20/02/2017, 13h54
    Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

  • #2
    Re : Sécurisation : https://securityheaders.io

    Bonjour

    Amusant cette "coïncidence temporelle" car nous en parlions hier justement avec Stéphane Bourderiou d'Aide-Joomla.fr et c'est lui qui a attiré mon attention sur le site securityheaders.io.

    J'ai pris une heure hier soir pour regarder le site et voir comment je pouvais, pour mon site, améliorer le score.

    Cela peut se faire assez facilement pour la plupart des règles (à ajouter dans le fichier .htaccess). Celle qui a demandé le plus de travail est la règle Content-Security-Policy qui nécessite de lister les sites tiers (comme les CDN, les fontes Google, etc.). Il faut surfer sur un max. de pages de son site, celles qui contiennent des scripts, comme les galeries, les interfaces, les widgets, ... afin de lister les scripts .js, .css mais aussi les web fonts et compléter la règle Content-Security-Policy. Ce n'est pas très compliqué, faut juste un peu de rigueur et beaucoup de tests.

    Un super article en Français sur le sujet : https://www.alsacreations.com/articl...-securite.html

    Bonne journée.
    Dernière édition par cavo789 à 20/02/2017, 16h41
    nossibe aime ceci.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
    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)​

    Commentaire


    • #3
      Re : Sécurisation : https://securityheaders.io

      A l'origine, c'était aussi pour répondre à une demande précise et pour se préparer à un audit assez complet sur la sécurité et la confidentialité des données (y compris sur la gestion des cookies ).

      Effectivement, ce n'est pas très compliqué et l'article d'alsacreation est au top, merci Christophe
      Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

      Commentaire


      • #4
        Re : Sécurisation : https://securityheaders.io

        Yes ... vraiment très instructif
        merci Christophe
        Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer
        Cette année, le JoomlaDay FR a lieu à Bruxelles, les 20 et 21 mai 2022, plus d'infos et inscriptions : www.joomladay.fr

        Commentaire


        • #5
          Bonjour

          Outil très intéressant que j'ai testé. Après plusieurs tests et modifications, tout est vert sauf content security policy.
          Je ne sais pas s'il faut utiliser php ou htacces et comment.
          En bref, besoin d'aide.
          Merci !

          Commentaire


          • #6
            Le mieux pour toutes ces modifications est de pouvoir le faire au niveau du serveur mais j'imagine qu'avec un hébergement mutualisé ce n'est pas possible.
            Il faut alors le faire dans le fichier .htaccess.

            La directive à inscrire est la suivante :

            <IfModule mod_headers.c>

            Header set Content-Security-Policy: xxx écrire ici les règles xxx

            # # `mod_headers` cannot match based on the content-type, however,
            # # the `Content-Security-Policy` response header should be send
            # # only for HTML documents and not for the other resources.

            <FilesMatch "\.(appcache|atom|bbaw|bmp|crx|css|cur|eot|f4[abpv]|flv|geojson|gif|htc|ic[os]|jpe?g|m?js|json(ld)?|m4[av]|manifest|map|markdown|md|mp4|oex|og[agv]|opus|otf|pdf|png|rdf|rss|safariextz|svgz?|swf|top ojson|tt[cf]|txt|vcard|vcf|vtt|webapp|web[mp]|webmanifest|woff2?|xloc|xml|xpi)$">
            Header unset Content-Security-Policy
            </FilesMatch>

            </IfModule>

            Pour les règles, j'utilise le générateur https://www.cspisawesome.com/ puis après il faut tester toutes les pages du site en utilisant la console de développement dans Chrome pour trouver les erreurs et faire les modifications en conséquence.
            Tous les services pour les sites Joomla! : sécurité, nettoyage de sites piratés, hébergement, SEO, applications Fabrik, migration, compatibilité mobiles, accessibilité, ...
            Administrateur certifié Joomla! 3
            https://www.betterweb.fr

            Commentaire


            • #7
              bonjour, j'ai rajouté les lignes suivantes
              # Extra Security Headers
              <If Module mod_headers.c>
              Header set X-XSS-Protection "1; mode=block"
              Header always append X-Frame-Options SAMEORIGIN
              Header set X-Content-Type-Options nosniff
              </If Module>

              Mais c'est sans effet . J'ai loupé quelque chose ?
              je suis chez lws
              Merci

              Commentaire


              • #8
                Déjà il faudrait être sûr que le module Apache mod_headers est activé. je ne sais pas si dans une console d'hébergement de mutualisé vous avez accès à cette info.
                S'il est activé, je pense qu'il faudrait redémarrer Apache pour qu'il prenne en compte la modification.
                Enfin, je pense que toutes les instructions ne sont pas toujours autorisées dans les fichiers .htaccess, suivant la configuration du serveur.
                Comme je gère mes propres serveurs, je peux insérer ces instructions directement dans le fichier de directives de l'hôte virtuel, pas dans le .htaccess.
                Tous les services pour les sites Joomla! : sécurité, nettoyage de sites piratés, hébergement, SEO, applications Fabrik, migration, compatibilité mobiles, accessibilité, ...
                Administrateur certifié Joomla! 3
                https://www.betterweb.fr

                Commentaire


                • #9
                  Merci pour la réponse
                  J'ai activé un module sur firefox et voici ce qu'il me donne, les lignes ont l'air prise en compte


                  GET HTTP/1.1 200 OK
                  Host: ecole-plongee-sassenageoise.org User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0 Accept: */* Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate, br Referer: https://ecole-plongee-sassenageoise.org/ Cookie: 1f5327e098466d7d0c645790ead8858c=b722b2ffb0682e296 0253c789bcf2950; vina-accordion-content159=vina-accordion-item1590 DNT: 1 Connection: keep-alive


                  Date: Sun, 04 Mar 2018 09:04:34 GMT Server: Apache X-Frame-Options: SAMEORIGIN Strict-Transport-Security: max-age=300; includeSubDomains; preload Last-Modified: Tue, 02 Feb 2016 14:31:51 GMT Accept-Ranges: bytes Content-Length: 42230 Cache-Control: max-age=2592000, public Expires: Tue, 03 Apr 2018 09:04:34 GMT Protected-by: aesecure (c) Christophe Avonture Vary: User-Agent X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff Keep-Alive: timeout=5, max=93 Connection: Keep-Alive Content-Type: image/jpeg Content-Language: fr-FR



                  GET HTTP/1.1 200 OK
                  Host: ecole-plongee-sassenageoise.org User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0 Accept: */* Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate, br Referer: https://ecole-plongee-sassenageoise.org/ Cookie: 1f5327e098466d7d0c645790ead8858c=b722b2ffb0682e296 0253c789bcf2950; vina-accordion-content159=vina-accordion-item1590 DNT: 1 Connection: keep-alive


                  Date: Sun, 04 Mar 2018 09:04:38 GMT Server: Apache X-Frame-Options: SAMEORIGIN Strict-Transport-Security: max-age=300; includeSubDomains; preload Last-Modified: Tue, 02 Feb 2016 14:31:55 GMT Accept-Ranges: bytes Content-Length: 33576 Cache-Control: max-age=2592000, public Expires: Tue, 03 Apr 2018 09:04:38 GMT Protected-by: aesecure (c) Christophe Avonture Vary: User-Agent X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff Keep-Alive: timeout=5, max=92 Connection: Keep-Alive Content-Type: image/jpeg Content-Language: fr-FR

                  Et le site securityheaders ne les voit pas, mon score n'évolue pas


                  Commentaire


                  • #10
                    Je ne sais pas de quel module vous parlez. Quand je teste votre page d'accueil dans Chrome, avec les outils de développement, onglet "network", je vois ceci comme "headers":

                    Request URL:https://ecole-plongee-sassenageoise.org/
                    Request Method:GET
                    Status Code:200 OK
                    Remote Address:185.98.131.144:443
                    Referrer Policy:no-referrer-when-downgrade
                    Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
                    Connection:Keep-Alive
                    Content-Encoding:gzip
                    Content-Type:text/html; charset=utf-8
                    Date:Sun, 04 Mar 2018 11:53:15 GMT
                    Expires:Wed, 17 Aug 2005 00:00:00 GMT
                    Keep-Alive:timeout=5, max=100
                    Last-Modified:Sun, 04 Mar 2018 11:53:15 GMT
                    P3P:CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
                    Pragma:no-cache
                    Server:Apache
                    Transfer-Encoding:chunked
                    X-Powered-By:PHP/7.1.13
                    Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
                    Accept-Encoding:gzip, deflate, br
                    Accept-Language:fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7,nl;q=0.6
                    Cache-Control:max-age=0
                    Connection:keep-alive
                    Cookie:1f5327e098466d7d0c645790ead8858c=9050a23bf4 b0333b74a04a45e52c657c; vina-accordion-content159=vina-accordion-item1590
                    Host:ecole-plongee-sassenageoise.org
                    Upgrade-Insecure-Requests:1
                    User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36

                    Le Referrer policy est présent mais, par rapport à mon site par exemple, il manque Content-Security-Policy, X-Content-Type-Options, X-Frame-Options, X-XSS-Protection.
                    Tous les services pour les sites Joomla! : sécurité, nettoyage de sites piratés, hébergement, SEO, applications Fabrik, migration, compatibilité mobiles, accessibilité, ...
                    Administrateur certifié Joomla! 3
                    https://www.betterweb.fr

                    Commentaire


                    • #11
                      Bonjour,

                      Je m'immisce.....

                      Dans la doc Mozilla https://infosec.mozilla.org/guidelin...eferrer-policy, on peut inclure certaines de ces directives par les meta, donc, au niveau du template.

                      J'ai donc inclus un "beau"
                      Code:
                      <meta http-equiv="Referrer-Policy" content="same-origin">
                      dans mon template et, effectivement, il est pris en compte au niveau de mon explorateur, mais, securityheaders ne le prend pas en compte.

                      Donc, la sécurité est bien là et c'est le principal non ?

                      Pascal
                      If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

                      Commentaire


                      • #12
                        Envoyé par jfque Voir le message
                        Le mieux pour toutes ces modifications est de pouvoir le faire au niveau du serveur mais j'imagine qu'avec un hébergement mutualisé ce n'est pas possible.
                        Il faut alors le faire dans le fichier .htaccess.

                        La directive à inscrire est la suivante :

                        <IfModule mod_headers.c>

                        Header set Content-Security-Policy: xxx écrire ici les règles xxx

                        # # `mod_headers` cannot match based on the content-type, however,
                        # # the `Content-Security-Policy` response header should be send
                        # # only for HTML documents and not for the other resources.

                        <FilesMatch "\.(appcache|atom|bbaw|bmp|crx|css|cur|eot|f4[abpv]|flv|geojson|gif|htc|ic[os]|jpe?g|m?js|json(ld)?|m4[av]|manifest|map|markdown|md|mp4|oex|og[agv]|opus|otf|pdf|png|rdf|rss|safariextz|svgz?|swf|top ojson|tt[cf]|txt|vcard|vcf|vtt|webapp|web[mp]|webmanifest|woff2?|xloc|xml|xpi)$">
                        Header unset Content-Security-Policy
                        </FilesMatch>

                        </IfModule>

                        Pour les règles, j'utilise le générateur https://www.cspisawesome.com/ puis après il faut tester toutes les pages du site en utilisant la console de développement dans Chrome pour trouver les erreurs et faire les modifications en conséquence.
                        Bonjour et merci pour la réponse

                        J'ai testé dans le htaccess mais j'ai un message d'erreur.
                        Ensuite, j'ai testé via la balise Meta du template et ça fonctionne, sauf que je n'ai plus recaptcha ni lightbox.


                        Commentaire


                        • #13
                          Il faut regarder dans les erreurs au niveau de la console de votre explorateur.

                          Comme l'a écrit Christophe, la partie Content-Security-Policy est un peu plus difficile à gérer car il faut ajouter toutes les librairies externes utilisées.

                          Pascal
                          If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

                          Commentaire


                          • #14
                            Envoyé par pmleconte Voir le message
                            Il faut regarder dans les erreurs au niveau de la console de votre explorateur.

                            Comme l'a écrit Christophe, la partie Content-Security-Policy est un peu plus difficile à gérer car il faut ajouter toutes les librairies externes utilisées.

                            Pascal
                            Je n'ai qu'un seul message d'erreur qui porte sur un script qui vient de https://justphotos.com et qui correspond à je ne sais pas quoi.

                            Commentaire


                            • #15
                              Bonjour,

                              Cela signifie certainement que votre librairie n'est pas "CSP ready": elle doit faire appel à du javascript dans le code php ou y créer du CSS.

                              Dans ce cas, il faut ajouter dans le CSP des directives script-src 'unsafe-inline' et/ou font-src 'unsafe-inlie'. Cela peut aussi provenir de l'ouverture d'une frame et, dans ce cas, il faut ajouter cette frame dans une directive frame-src.

                              Personnellement, je suis en train de revoiur tous mes modules pour qu'ils soient CSP ready, car, j'aimais bien le mode inline pour le CSS et le javascript et, c'est un gros boulot.....

                              Pascal
                              If anything can go wrong, it will...If I can help, I will ..https://conseilgouz.com

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X