Partage
  • Partager sur Facebook
  • Partager sur Twitter

Protection et test données GET et POST

Sujet résolu
    14 avril 2018 à 6:23:01

    Coucou je voudrais connaitre vos techniques pour tester les variables reçues en formulaires ou AJAX avec les méthodes POST ou GET.

    Je pense notamment à la vérification avec is_numeric (si on attend un nombre comme 42 ou "42" (en chaine de caractères) pour des IDs par exemple) ou avec !empty pour du texte/string (si on s'attend à ce que ça existe et qu'il y ait des caractères).

    Avez-vous d'autres idées, par exemple si on s'attend à du texte mais sans aucun caractère spéciaux / balises ou du moins juste des "_" ou "-" pour des mots de variables comme "page" "post" par exemple, ...
    Apràs on peut faire des RegEx mais peut-être existe-il une fonction php déjà existante ?


    Merciii :) 
    Et si vous pensez à d'autres choses, elles sont les bienvenues :) 

    • Partager sur Facebook
    • Partager sur Twitter
      14 avril 2018 à 8:03:20

      SAlut,

      les fonctions is_numeric, is_int, is_bool ... go to the doc ;)

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        14 avril 2018 à 9:33:33

        Regarde les filtres. C’est filter() la fonction je crois.

        Edit : En fait c'est filter_var(), tu as tout ici : https://secure.php.net/manual/fr/function.filter-var.php

        -
        Edité par Anonyme 14 avril 2018 à 9:35:32

        • Partager sur Facebook
        • Partager sur Twitter
          14 avril 2018 à 17:27:15

          christouphe a écrit:

          SAlut,

          les fonctions is_numeric, is_int, is_bool ... go to the doc ;)


          Oui, justement j'ai bien vérifié :)
          Par contre je sais que les champs de type textarea et text ne peuvent vérifier que du is_numeric et non du is_int étant donné que ce sont des chaines,
          Et est-ce que is_int et is_bool fonctionnent pour des listes ou autre (où on met une valeur de genre "true" "false" ou "1"), car quand on vérifie la doc c'est bien spécifier sur is_int de bien utiliser is_numeric pour les formulaires (donc GET et POST sont toujours des chaines ?), merci pour ces idées mais je ne suis pas sûr que ça soit applicable sur les forms mise à part is_numeric ?

          a écrit:

          Regarde les filtres. C’est filter() la fonction je crois.

          Edit : En fait c'est filter_var(), tu as tout ici : https://secure.php.net/manual/fr/function.filter-var.php

          -
          Edité par Anonyme il y a environ 7 heures


          Ah cool je vais regarder, je connaissais pas du tout :D merci
          Waou, bien plus simple que de faire ses propres RegEx ^^ 

          Et on peut l'utiliser avec une regex, c'est parfait ça, merci


          Si d'autres personnes ont des idées, elles sont les bienvenues :)

          merci

          -
          Edité par LudoLudo15 14 avril 2018 à 17:28:33

          • Partager sur Facebook
          • Partager sur Twitter
            17 avril 2018 à 4:17:31

            Je me suis donc orienté vers le test de toutes mes valeurs avec des RegExp, si on s'attend à des codes postaux, courriels, téléphones, pour le texte je teste si le nb de caractères est là et je filtre aussi en supprimant toutes les balises html (j'en ai pas besoin de toute façon ma base ne contient que des données brutes).

            J'ai testé aussi les nombres et les remets en réel INT (plutôt que String)

            Et après tout ceci je fais des BindValue ou BindParam pour envoyer dans la base pour éviter les injections SQL


            • Des autres idées pour les textes recueillis (autre que ceux vérifiés avec une RegExp, je parle de textes longs là) ? Pour le moment je vérifie nb de caractères (min et max), je supprime les espaces avant et après qui servent à rien, je filtre en enlevant le code html grâce à " filter_var($var, FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES); ", je fais aussi un "stripslashes($var);", et passe tout à la base avec BindValue ou BindParam, est-ce que je dois traiter d'une autre façon les caractères spéciaux ? (guillemets et autre) ?
               
            • Aussi à l'affichage depuis la base qu'est ce que je dois utiliser pour les infos de la base : htmlspecialchars et nl2br ? y a-t-il d'autres choses ? Pareil je fais un "stripslashes($var);" avant de mettre les données dans la base, mais est-ce que ça serait plutôt de le faire à l'affichage (plutôt qu'à la création) ?


            Merci

            -
            Edité par LudoLudo15 17 avril 2018 à 4:19:29

            • Partager sur Facebook
            • Partager sur Twitter

            Protection et test données GET et POST

            × 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