Comment autoriser l'utilisation d'apostrophe dans la recherche sans blocage aeSecure?

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

  • [RÉGLÉ] Comment autoriser l'utilisation d'apostrophe dans la recherche sans blocage aeSecure?

    Bonjour,

    Si je fais une recherche, sur mon site, avec une expression contenant une apostrophe, ça fait virer aesecure au rouge, qui bloque l'accès, avec le message suivant :

    Accès refusé.
    Si vous pensez que c'est une erreur, merci de contacter le gestionnaire du site pour qu'il adapte le niveau de sécurité
    Code : 271 - L'URL contient des caractères non autorisés


    Question 1 :
    comment empêcher ce comportement ?

    Question 2 :
    pourquoi l'apostrophe est-elle un danger ?

    Merci !
    Flo, Ariège

    Il n'y a que celui qui a honte d'apprendre qui a peur de demander

  • #2
    Salut Flo.

    J'ai eu le même problème et avais ouvert un post sur le forum.
    Christophe m'avait routé vers un article proposant la solution mais le lien mène vers une 404.

    Je vais essayer de retrouver l'instruction à placer dans le htaccess et reviens t'en dire plus.


    _________________ EDITION _________________

    L'article à ce sujet à changé d'URL. Le voilà.
    Dernière édition par Eddy.vh à 11/11/2019, 17h09
    FlodAriege et cavo789 aiment ceci.
    Cordialement.
    __
    Eddy !!!
    Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

    Commentaire


    • #3
      Bonsoir

      >pourquoi l'apostrophe est-elle un danger ?
      L'apostrophe peut être utilisée pour mener des attaques de type SQL Injection ainsi que XSS (tu trouveras quantité de liens sur le net).

      En principe, l'apostrophe ne devrait pas être utilisée (idéalement) dans un query string. Il faudrait que le développeur utilise des requêtes en POST (et non GET) ou qu'il encode ses données; personnellement, si je fais du GET pour du texte "inconnu"; je l'encode en base64.

      Quand je dis inconnu, c'est lorsque je ne passe pas un code qui fais partie d'une liste connue (un code comme p.ex. "a", "b" ou "c") mais que je donne à mon utilisateur la possibilité de spécifier (un prénom, un titre, ...). Là, pour ne pas donner une possibilité d'attaque par ce biais, j'encode en base64 avant d'envoyer mon paramètre.

      Ceci étant laissé au libre choix du développeur...

      Bonne soirée.
      FlodAriege 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


      • #4
        cavo789

        Christophe, le même phénomène se produit avec la recherche avancée, j'ai testé l'ajout de :
        Code:
        RewriteCond %{QUERY_STRING} !.*finder(.*)$ [NC]
        Mais ça ne fonctionne pas…

        Y a-t-il une astuce astucieuse ?
        Cordialement.
        __
        Eddy !!!
        Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

        Commentaire


        • #5
          Bonjour Eddy

          Comme tu le sais sans nul doute, j'ai transféré la propriété d'aeSecure à Simon Grange depuis bientôt un an (il est supposé assurer le support) et, du même coup, je lui ai donné le seul site Joomla que j'avais encore.

          Si je regarde ta suggestion, cela ne peut pas fonctionner vu que tu utilises QUERY_STRING or, com_finder n'est pas dans le query string (càd tout ce qui suit le "?" dans l'URL) mais est partie de l'URL. Essaie en remplaçant %{QUERY_STRING} par %{REQUEST_URI} (non testé)

          Bonne soirée.
          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


          • #6
            Ah mais oui, suis-je bête ?
            J'teste dès d'main et j'te dis quoi (dirait Dany Boon)
            Cordialement.
            __
            Eddy !!!
            Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

            Commentaire


            • #7
              Envoyé par Eddy.vh Voir le message
              Salut Flo.

              J'ai eu le même problème et avais ouvert un post sur le forum.
              Christophe m'avait routé vers un article proposant la solution (...) Le voilà.
              Merci Eddy !

              J'essaie ça (pas ce soir), et reviendrai ici clore le sujet dès que problème réglé.

              Bonne soirée

              Envoyé par cavo789 Voir le message
              Bonjour Eddy

              Comme tu le sais sans nul doute, j'ai transféré la propriété d'aeSecure à Simon Grange depuis bientôt un an (il est supposé assurer le support) et, du même coup, je lui ai donné le seul site Joomla que j'avais encore.

              (...)

              Bonne soirée.
              Bonjour Christophe,
              supposé, censé même je dirais, mais de toute évidence...
              Je trouve ça triste, parce que la plus belle extension du monde n'est rien sans support (en tout cas quand il s'agit d'une version payante).
              Le blog contient peut-être toutes les infos nécessaires, c'est possible, mais pour quelqu'un comme moi qui ne suis pas experte, c'est assez déroutant.
              Mon message n'attend pas de réponse, je ne pouvais juste pas m'empêcher de te donner mon sentiment.

              Bonne soirée, et merci pour toute l'aide que tu nous apportes !!
              Flo, Ariège

              Il n'y a que celui qui a honte d'apprendre qui a peur de demander

              Commentaire


              • #8
                Envoyé par cavo789 Voir le message
                Bonjour Eddy

                Comme tu le sais sans nul doute, j'ai transféré la propriété d'aeSecure à Simon Grange depuis bientôt un an (il est supposé assurer le support) et, du même coup, je lui ai donné le seul site Joomla que j'avais encore.

                Si je regarde ta suggestion, cela ne peut pas fonctionner vu que tu utilises QUERY_STRING or, com_finder n'est pas dans le query string (càd tout ce qui suit le "?" dans l'URL) mais est partie de l'URL. Essaie en remplaçant %{QUERY_STRING} par %{REQUEST_URI} (non testé)

                Bonne soirée.
                Ah mais oui… Mais non… Ça fonctionne pas.

                Cordialement.
                __
                Eddy !!!
                Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

                Commentaire


                • #9
                  Hello

                  Quelle est l'URL exacte (de chez exacte ) qui est bloquée ? Tu peux voir cette URL qui apparaît en rouge dans ta console de debuging, onglet réseau.

                  Si le mot "finder" n'est pas repris dans l'URL, ta ligne est sans effet, oui.

                  Et, par la même occasion, quel est ton bloc htaccess pour le blocage 271 ?

                  Est-ce exactement ceci ?

                  Code PHP:
                  # No carriage return, line feed, escape (%27), ... in the query string
                  # Block f.i. http://yoursite/index.php?value=%27  
                  RewriteCond %{QUERY_STRING} ^.*(<|>|'|%0A|%0D|%25|%27|%3C|%3E|%00).* [NC,OR]  
                  RewriteCond %{QUERY_STRING} ^.*((\/\*)?\*\/).* [NC,OR]  
                  RewriteCond %{QUERY_STRING} ^.*\|\|.* [NC,OR]  
                  RewriteCond %{REQUEST_URI} !.*finder(.*)$ [NC]  
                  RewriteRule .* /aesecure/accessdenied.php?s=271 [L] 
                  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


                  • #10
                    cavo789
                    Bonjour Christophe.

                    Le mot "finder" se trouve bien dans l'url d'une recherche depuis le pluging de recherche avancée.

                    Voilà l'url en question sur une recherche sur le terme "l'élément" sur mon site BreezingForms :
                    Code:
                    https://www.breezingforms.eddy-vh.com/component/finder/search?q=l'élément&Itemid=101
                    (voir capture jointe)

                    Le bloc de blocage en question est comme ceci :
                    Code PHP:
                    # No carriage return, line feed, escape (%27), ... in the query string
                    # Block f.i. http://yoursite/index.php?value=%27
                    RewriteCond %{QUERY_STRING} ^.*(<|>|'|%0A|%0D|%25|%27|%3C|%3E|%00).* [NC,OR]
                    RewriteCond %{QUERY_STRING} ^.*((\/\*)?\*\/).* [NC,OR]
                    RewriteCond %{QUERY_STRING} ^.*\|\|.* [NC]
                    RewriteCond %{QUERY_STRING} !option=com_akeeba(.*)$ [NC]   # exception for Akeeba backup
                    RewriteCond %{QUERY_STRING} !.*searchword=(.*)$ [NC]
                    RewriteCond %{REQUEST_URI} !.*finder(.*)$ [NC]
                    RewriteRule .* /aesecure/accessdenied.php?s=271 [L] 
                    Fichiers joints
                    Cordialement.
                    __
                    Eddy !!!
                    Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

                    Commentaire


                    • #11
                      Tu as vu que certaines lignes se terminent par un NC,OR et pas d'autres (sous-entendus AND du coup).

                      Mets un OR pour tester.
                      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


                      • #12
                        Je teste dès demain.
                        Cordialement.
                        __
                        Eddy !!!
                        Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

                        Commentaire


                        • #13
                          Non testé

                          Code:
                          # Block f.i. http://yoursite/index.php?value=%27
                          RewriteCond %{QUERY_STRING} ^.*(<|>|'|%0A|%0D|%25|%27|%3C|%3E|%00).* [NC,OR]
                          RewriteCond %{QUERY_STRING} ^.*((\/\*)?\*\/).* [NC,OR]
                          RewriteCond %{QUERY_STRING} ^.*\|\|.* [NC]
                          # exception for Akeeba backup
                          RewriteCond %{QUERY_STRING} !option=com_akeeba(.*)$ [NC,OR]
                          RewriteCond %{QUERY_STRING} !.*searchword=(.*)$ [NC,OR]
                          RewriteCond %{REQUEST_URI} !.*finder(.*)$ [NC]
                          RewriteRule .* /aesecure/accessdenied.php?s=271 [L]
                          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


                          • #14
                            cavo789
                            Salut Christophe, non, il n'en veut pas.
                            Vu l'URL, nous avons un query string "q=". Du coup, ceci fonctionne
                            Code:
                            RewriteCond %{QUERY_STRING} !.*q=(.*)$ [NC]
                            Mais je me demande si ce n'est pas dangereux.

                            Ton avis ?
                            Cordialement.
                            __
                            Eddy !!!
                            Tutoriels BreezingForms en Français : https://www.breezingforms.eddy-vh.com/

                            Commentaire


                            • #15
                              Dangereux non et encore moins parce qu'il s'agit de com_finder càd d'un élément du core de Joomla (et nous pouvons être certain que les développeurs Joomla sont des pros et qu'ils ont "sanitanisé" l'input qui vient de ce fameux paramètre "q").

                              Cela aurait été un développeur "bricoleur"; oui, on pourrait se dire que la personne n'a peut-être pas veiller à correctement sécuriser son code.

                              Donc : no stress, tout va bien.

                              (pas très logique que REQUEST_URI n'ai pas donné de résultats; étrange).
                              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

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X