IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

extract de $_POST [PHP 5.1]


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut extract de $_POST
    Bonjour,

    J'ais lue, que était obselete,
    ors cette fonction est toujours décrite dans php.net avec quelques réserves
    Je voudrait votre avis, sachant que bien entendu mes sites ont
    register_globals = Off dans php.ini
    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Pour des raisons de sécurité, je te déconseille très fortement d'extraire les données de $_POST ou $_GET ou encore $_REQUEST.

    La raison est que extract manipule la table des symboles pour injecter de nouvelles variables dans le scope courant, en écrasant celles qui pouvaient déjà s'y trouver. De ce fait, un utilisateur un peu malin s'étant rendu compte du comportement peut s'en servir pour briser la sécurité.

    Le mieux à faire est encore de réccupérer les doonées saines, après le passage dans un filtre. On peut ensuite vouloir les extraires tant qu'on sait exactement ce qu'on fait.

    Voici ce que je te recommande de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $inputs = filter_input_array(INPUT_POST, array(
      'a' => FILTER_SANITIZE_STRING,
      'b' => FILTER_VALIDATE_EMAIL,
      'c' => array(
        'filter' => FILTER_VALIDATE_INT,
        'flags'  => FILTER_REQUIRE_ARRAY,
      )
    );
     
    extract($inputs, EXTR_PREFIX_ALL, "_in_");
     
    echo "a: {$_in_a}, b: {$_in_b}, c: ".implode(',', $_in_c);
    Garde à l'esprit que manipuler la table des symboles au runtime reste dangereux et doit être utilisé avec précaution et parcimonie.

    Dans tout les cas, il faut SYSTÉMATIQUEMENT vérifier les données utilisateur.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Super merci a toi,
    c'est limpide
    Christele

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Extraction de mots clés
    Par Olive1808 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 01/02/2016, 20h49
  2. Signification de l'instruction extract ($_POST) ;
    Par amazircool dans le forum Langage
    Réponses: 2
    Dernier message: 15/04/2008, 18h31
  3. [tables systèmes] extraction de la structure d'une base
    Par laffreuxthomas dans le forum Autres SGBD
    Réponses: 6
    Dernier message: 23/03/2006, 13h24
  4. requête d'extraction de lieux (st et saint)
    Par sdchamplas dans le forum Langage SQL
    Réponses: 8
    Dernier message: 20/02/2003, 11h17
  5. Extraction des phrases d'un Texte
    Par LE CHAKAL dans le forum Langage
    Réponses: 6
    Dernier message: 19/08/2002, 21h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo