Content-Security-Policy (CSP) avec Joomla

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

  • Content-Security-Policy (CSP) avec Joomla


    Je découvre, redécouvre, la CSP, suite à un test SEO sur mon serveur web, qui m'a informé que je n'avais pas mis en place la CSP.
    J'ai donc mis en place une CSP minimaliste, pour répondre à l'erreur SEO et tester cette mise en place. Voilà l'exemple d'une CSP :

    <IfModule mod_headers.c>
    Header set Content-Security-Policy "script-src 'self' https://www.***********.eu"
    </IfModule>

    Maintenant, si cette règle a été correctement appliquée, mon slider ne fonctionne plus, notamment du fait qu'il intègre directement des scripts dans des balises Javascript, dans le body de Joomla.

    Je tente un contournement, et tente d'activer JQuery dans le module, et, en espérant qu'il soit chargé localement.
    La, je constate que l'interface administrateur de Joomla a des ratés, avec cette CSP rudimentaire.
    J'entend par la que je ne peux plus fermer un module une fois que je l'ai ouvert.

    Si j'utilise la barre de navigation pour revenir à la racine de l'administrateur, et, retourner dans les modules, les petits cadenas sont toujours actifs sur les modules, et, je ne peux pas cliquer dessus pour remettre l'état standard.

    Ma question est la suivante : Je cherche ( si cela peut se trouver ) une CSP pour Joomla, pour un site par défaut.
    Ici, ce n'est même pas tant le soucis que je rencontre avec le slider qui m'intéresse, mais, à trouver une CSP valide, pour un Joomla par défaut.

    Je ne sais pas si le projet Joomla a déjà pu écrire des notes à ce sujet, mais, je suppose qu'il existe quelque chose comme cela, quelque part.

    J'ai cherché le mot clé CSP sur le forum, je n'ai rien trouvé.

    Sur Github, j'ai pu apprendre que Joomla 4 intègre composant et plugin, pour CSP, mais, je ne suis pas convaincu, car, si le serveur n'est pas configuré, je pense que le composant ou le plugin ne sera pas fonctionnel, et, qu'avant de penser composant ou plugin, il faut correctement configurer le serveur.

    J'ai partagé cette question dans une issue sur Github : https://github.com/joomla/joomla-cms/issues/23392
    Dernière édition par ZerooCool à 30/12/2018, 02h59

  • #2
    J'ai survolé ce sujet sur Github et je vous invite à en prendre connaissance : https://github.com/joomla/joomla-cms/pull/20686

    Le message suivant évoque la problématique que je rencontre pour le slider : https://joomla.stackexchange.com/que...does-not-start

    Dans la console, lors de la visite de mon site, j'ai le message d'erreur suivant :
    Content Security Policy: Les paramètres de la page ont empêché le chargement d’une ressource à inline (« script-src »).

    D'après les échanges sur stackexchange, la solution radicale serait de passer la CSP en " insécure " pour pouvoir faire fonctionner Joomla normalement.

    Merci de vos avis sur la question, que vous pouvez également faire remonter sur Github, puisque ce sujet semble d'actualité avec Joomla 4.

    Commentaire


    • #3
      GHSVS-de m'a répondu ceci sur Github :
      For Joomla 3: https://github.com/zero-24/plg_syste...eader/releases
      Joomla 4 will have csp tools/extensions bundled in core.

      Suite à sa réponse, je me demande si les configurations les configurations côté serveur sont écrasées par ce composant / plugin depuis l'administration de Joomla.

      N'est-il pas préférable de faire ce paramétrage côté serveur, dans le VirtualHost, directement ?
      <IfModule mod_headers.c>
      Header set Content-Security-Policy "script-src 'self' https://www.***********.eu"
      </IfModule>

      Mon attente serrait d'avoir un modèle de CSP par défaut, pour faire fonctionner Joomla par défaut.
      Ce modèle de CSP devrait pouvoir être appliqué au serveur VPS / dédié.

      Ainsi, pas besoin d'ajouter des composants ou plugin sur Joomla, pour gérer la CSP, dans le cas d'un Joomla installé par défaut.

      Commentaire


      • #4
        "Joomla 4 will have csp tools/extensions bundled in core." : en version 4 donc, tout site Joomla! aura déjà ces fonctionnalités et ne nécessitera pas d'ajout d'extension supplémentaire comme celle de Michael Richey pour la version 3 dont on parle dans la discussion que tu cites dans ton deuxième message ou ce plugin dont tu parles dans le dernier, si je comprends bien cette réponse.
        ZerooCool aime ceci.
        "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 - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

        Commentaire


        • #5
          J'ai demandé à Lcf.vs de développez, son avis, et, il m'a demandé comment fonctionnait ce composant / plugin, si le header était réécrit par PHP et que si oui, c'est pas terrible, car, cela n'interviendrait pas pour les fichiers statiques, genre les assets.

          De mon côté, j'ai testé un générateur en ligne de CSP.
          Pour faciliter la mise en place des règles, utiliser un générateur d'en-tête CSP en ligne : https://www.cspisawesome.com

          J'ai pu modifier la proposition de CSP, jusqu'à obtenir une navigation sans alerte :
          - Depuis la page d'accueil de l'administrateur.
          - Depuis la page d'accueil du site ( en incluant mon slider également. )

          Je ne sais pas si je l'ai fais correctement, et, je suis conscient que cette CSP est finalement loin d'être optimale, puisqu'on contourne la règle qui préconise d'interdire les scripts dans les balises <scripts ... > </script> dans le site.

          <IfModule mod_headers.c>
          Header set Content-Security-Policy "img-src *; object-src 'self' https://www.***********.fr; media-src https://www.***********.fr; frame-src https://www.***********.fr; connect-src 'self' *; report-uri https://www.***********.fr"

          # Le module correspondant à X-Content-Security-Policy n'est pas chargé.
          # X-Content-Security-Policy "default-src 'self' https://www.***********.fr; script-src 'self' 'unsafe-inline' https://www.***********.fr; object-src https://www.***********.fr; style-src https://www.***********.fr; img-src https://www.***********.fr; media-src https://www.***********.fr; frame-src https://www.***********.fr; font-src https://www.***********.fr; connect-src https://www.***********.fr; report-uri https://www.***********.fr"

          # Le module correspondant à X-WebKit-CSP n'est pas chargé.
          # X-WebKit-CSP "default-src 'self' https://www.***********.fr; script-src 'self' 'unsafe-inline' https://www.***********.fr; object-src https://www.***********.fr; style-src https://www.***********.fr; img-src https://www.***********.fr; media-src https://www.***********.fr; frame-src https://www.***********.fr; font-src https://www.***********.fr; connect-src https://www.***********.fr; report-uri https://www.***********.fr"
          </IfModule>

          Je me demande ce que le couple composant / plugin proposé en version 3 et intégré en version 4 peut apporter de plus que la règle que je propose ici.
          De ce que j'en comprend, est un sparadra mouillé collé sur des besoins spécifiques en sécurité.

          J'ai donc répondu à la question que je me posais, pour ne pas rencontrer ce genre d'alertes dans le navigateur.
          La CSP que je propose semble convenir pour Joomla.

          Cette configuration a l'avantage :
          D'éviter les alertes CSP dans le navigateur.
          De prendre conscience du besoin d'amélioration du CMS, pour répondre aux bonnes pratiques de l'utilisation des CSP.

          Cette configuration a pour défaut :
          De ne pas respecter les standards conseillés pour la CSP.
          Dernière édition par ZerooCool à 31/12/2018, 15h11

          Commentaire


          • #6
            Envoyé par ZerooCool Voir le message

            J'ai cherché le mot clé CSP sur le forum, je n'ai rien trouvé.
            Normal vu que le forum n'accepte pas un mot de 3 lettres. Si tu avais cherché un peu mieux comme Content Security Policy ...

            https://forum.joomla.fr/forum/joomla...gin-httpheader

            https://forum.joomla.fr/forum/joomla...uoi-et-comment

            Il y a eu aussi une précédente discussion sur le sujet mais tout est déjà résumé avec les liens.

            Oui ce n'est pas parfait en php mais il faut bien mettre ces options à la portée de tous. J'aurai d'autres suggestions mais pas le temps de les développer.
            Le plugin a également une traduction en FR.

            et puis bonjour, bonnes fêtes de fin d'année et bonne année 2019...
            Il y a certaines habitudes qui se perdent sur le forum, alors je te fais le lot pour ne rien oublier

            ++
            Joomla User Group (JUG) Lille : https://www.facebook.com/groups/JUGLille/

            Commentaire


            • #7
              Bonjour, merci pour les liens complémentaires sur les discussions ouvertes à ce sujet récemment dans le forum.
              Pour les mots de 3 lettres, il faut le savoir, je n'ai pas mis en place de telles restrictions sur mon forum ou mon wiki.

              Je pense avoir complété les informations déjà existantes, qui ont déviées sur d'autres aspects de sécurité comme HSTS que je découvre.
              Je n'ai que quelques jours de retard sur les discussions intéressantes sur les CSP, et, je pense avoir pu enrichir un peu le contenu sur cette thématique :
              Content-Security-Policy (CSP) avec Joomla

              Pour faciliter la mise en place des règles CSP, utiliser un générateur d'en-tête CSP en ligne : https://www.cspisawesome.com
              Le simple fait d'utiliser le générateur de CSP pourra déjà aider quelques développeurs à mieux appréhender les règles CSP.
              Ce sera la le cadeau de Noël, pour ceux qui ne connaissent pas les CSP.

              J'ai également fais une proposition de CSP rudimentaire mais fonctionnelle avec Joomla, ce qui a l'avantage de faire disparaître les alertes dans le navigateur.
              Ce sera la un second cadeau de Noël, pour ceux qui découvrent les CSP.

              C'était la le but de ma publication, avoir un exemple de CSP, et, partager le générateur de CSP.
              M'assurer que le forum ait bien des informations à ce sujet en base. C'est le cas, c'est parfait.
              Dernière édition par ZerooCool à 31/12/2018, 15h13

              Commentaire

              Annonce

              Réduire
              Aucune annonce pour le moment.

              Partenaire de l'association

              Réduire

              Hébergeur Web PlanetHoster
              Travaille ...
              X