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 :
    https://securityheaders.io/?q=https%...re.com%2Ffr%2F

    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, 12h54
    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, 15h41
    nossibe likes this.
    Christophe (cavo789)
    Développeur d'aeSecure; protection, optimisation et nettoyage (après hack) de sites web Apache https://www.aesecure.com/fr
    Développeur de marknotes, logiciel de gestion de prises de notes avec interface web et de multiples convertisseur https://github.com/cavo789/marknotes

    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
        “Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter le nouveau service (en Beta) de la base de connaissance https://kb.joomla.fr
        Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérer à l'AFUJ https://www.joomla.fr/association/adherer

        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/services

            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/services

                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

                  https://ecole-plongee-sassenageoise....des/image3.jpg
                  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


                  https://ecole-plongee-sassenageoise....des/image4.jpg
                  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/services

                    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
                      JoomlaDay FR 2018 - 18/19 Mai 2018 ! J'y étais ... et vous ?

                      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
                          JoomlaDay FR 2018 - 18/19 Mai 2018 ! J'y étais ... et vous ?

                          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
                              JoomlaDay FR 2018 - 18/19 Mai 2018 ! J'y étais ... et vous ?

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

                              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
                              Travaille ...
                              X