Partage
  • Partager sur Facebook
  • Partager sur Twitter

Javascript malveillant dans un formulaire

Script issu du livre "Concevez votre site Web avec...

Sujet résolu
    21 janvier 2012 à 19:19:24

    Bonsoir,

    Lorsque j'insère dans un formulaire (lié à une page PHP) le script suivant:
    <script type="text/javascript">alert('badaboum')</script>
    

    afin de "tester" ce qui pourrait arriver si qqn "s'amusait" à y insérer ce code ci-dessus, la page reste blanche sans la boîte de dialogue Javascript comme expliqué dans le livre "Concevez votre SITE WEB avec PHP et MYSQL".

    Quand j'utilise la fonction

    echo htmlspecialchars($_POST['test']);
    

    le code apparaît bien.

    Mais sans cette fonction, la page reste blanche... Quand je place le script dans une page html, alors j'ai cette fameuse boîte Javascrit. J'ai l'impression que dès que le serveur renvoie la page en HTML, le code javascript n'apparaît plus...

    Quelqu'un aurait une idée?

    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      21 janvier 2012 à 19:30:56

      non je ne te réponds pas désolé :p

      J'ai eu le même soucis que toi, pi j'ai abandonné :p
      • Partager sur Facebook
      • Partager sur Twitter
        21 janvier 2012 à 19:35:16

        AHAH! :lol:

        Je pense que c'est ce que je vais faire aussi... :)

        • Partager sur Facebook
        • Partager sur Twitter
          21 janvier 2012 à 19:36:44

          Si le texte du code js apparaît dans ta page c'est qu'il n'est pas exécuté pas javacript, et c'est le but cherché...
          Finalement c'est quoi au juste ta question ?

          T.
          • Partager sur Facebook
          • Partager sur Twitter
            21 janvier 2012 à 19:42:49

            Merci pour ta réponse!

            En fait, le code Javascript n'apparaît pas (sauf si je mets cette fonction):
            htmlspecialchars
            

            Au sinon, c'est la page blanche...

            Dan le livre, il est expliqué que si qqn insérait ce code Javascript dans le formulaire :
            <script type="text/javascript">alert('badaboum')</script>
            


            on verrait une boîte Javascript s'ouvrir. Le soucis, c'est que je ne vois rien, sauf une page blanche...

            Voilà... :(
            • Partager sur Facebook
            • Partager sur Twitter
              21 janvier 2012 à 19:46:42

              Tu insères sûrement ta balise script a un endroit non autorisé, le navigateur la vire.

              T.
              • Partager sur Facebook
              • Partager sur Twitter
                21 janvier 2012 à 19:51:11

                en fait dans son code de la cible de son formulaire il a quelque chose du type:

                cible .php
                <?php echo $_POST['prenom']; ?>
                


                et dans son formulaire qui point vers cible.php

                formulaire.php
                <input type="text" name="prenom"/>
                


                Ainsi il veut en lançant sa page formulaire.php,y injecter du javascript via l'input

                <script type="text/javascript">alert('Badaboum')</script>
                


                ce qui fait que lorsqu'il est redirigé sur la page cible.php la fenetre badaboum apparait.

                Or chez nous deux ça ne le fait pas....

                Selon mateo21 ça devrait le faire, la page n'est pas encore protégée puisqu'on a rien mis pour.
                • Partager sur Facebook
                • Partager sur Twitter
                  21 janvier 2012 à 19:54:36

                  Je suppose que c'est dû au magic_quotes... Ca doit répondre à la question.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    21 janvier 2012 à 19:58:33

                    Backslasher les quotes ne désative pas les balises html...

                    T.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      21 janvier 2012 à 20:53:46

                      Apparemment...

                      J'ai essayé aussi comme cela:
                      <?php echo stripslashes($_POST['prenom']); ?>
                      


                      Mais, effectivement, ça ne fonctionne toujours pas...

                      o_O
                      • Partager sur Facebook
                      • Partager sur Twitter
                        24 janvier 2012 à 9:49:59

                        Quelqu'un aurait-il une petite idée sur le problème?

                        :euh:
                        • Partager sur Facebook
                        • Partager sur Twitter
                          24 janvier 2012 à 9:52:59

                          Colle ici la source de la page html générée devant afficher l'alert...
                          C'est bizarre de te prendre la tête avec ce problème, tu vois bien qu'en l'absence de htmlspecialchars, l'information saisie par l'utilisateur n'est pas restituée correctement, c'était le but...

                          T.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            24 janvier 2012 à 10:06:53

                            Bonjour!

                            Merci pour ta réponse!

                            Je ne me prends nullement la tête. Je veux juste comprendre pourquoi ça ne fonctionne pas.

                            Pour revenir à ce que tu me conseilles, je ne comprends pas ce que tu veux dire par: Colle ici la source de la page html générée devant afficher l'alert...
                            • Partager sur Facebook
                            • Partager sur Twitter
                              24 janvier 2012 à 10:29:28

                              Ca va devenir compliqué ...
                              Tu injectes un truc qu'ensuite tu affiches à priori dans une page html qui à une source ... non ?

                              T.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                24 janvier 2012 à 10:49:26

                                Désolé, j'avais pas capté.

                                C'est ça que tu veux dire??:

                                cible.php:

                                <!DOCTYPE HTML>
                                <html>
                                <head>
                                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
                                <title>Document sans titre</title>
                                </head>
                                
                                <body>
                                
                                <?php
                                
                                	echo $_POST['test'];
                                ?>
                                
                                <br/>
                                
                                <p><a href="formulaire.php">Retour à la page précédente!</a></p>
                                
                                </body>
                                </html>
                                
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  24 janvier 2012 à 10:57:36

                                  Je te demande pas ta source php mais le html généré (dans le navigateur sur la page qui devrait afficher l'alert tu fais clique droit + code source de la page, colle le résultat ici dans une balise HTML)

                                  T.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    24 janvier 2012 à 11:05:52

                                    Oups! Désolé...

                                    Est-ce cela?:

                                    <html>
                                    <head>
                                    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
                                    <title>Document sans titre</title>
                                    </head>
                                    <body>
                                    <script type="\"text/javascript\"">
                                    <br>
                                    <p>
                                    </body>
                                    </html>
                                    
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      24 janvier 2012 à 11:08:00

                                      Bon vu le code comment espères-tu avoir un alert affiché ??

                                      Par contre, si tu as bien posté ça:
                                      <script type="text/javascript">alert('badaboum')</script>
                                      Cf: post d'aslo sur les magic_quote, à désactiver sur ton serveur.

                                      T.
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        24 janvier 2012 à 11:19:37

                                        Juste...

                                        Manifestement, ce serait Safari qui n'affiche pas le script (pourtant, Javascript est activé dans les préférences). J'ai fait comme tu m'as dit sauf que j'ai ajouté la fonction "stripslashes" devant la variable au lieu de désactiver les magic_quote sur mon serveur.

                                        <?php
                                        
                                        	echo stripslashes($_POST['test']);
                                        	
                                        ?>
                                        


                                        ET CA FONCTIONNE SOUS FIREFOX...

                                        Merci pour tes conseils et ta patience...!
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          24 janvier 2012 à 11:22:05

                                          Ok, mais stripslashes n'est qu'une rustine, modifie ta config (désactive les magic_quote). C'est le paramétrage par défaut de php aujourd'hui, et c'est plus logique aussi.

                                          T.
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            24 janvier 2012 à 11:37:55

                                            Ok, merci!

                                            J'imagine que l'on change ce paramètre dans php.ini?

                                            • Partager sur Facebook
                                            • Partager sur Twitter

                                            Javascript malveillant dans un formulaire

                                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                            • Editeur
                                            • Markdown