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 :

Sécuriser un formulaire avec une fonction dans une boucle ? [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut Sécuriser un formulaire avec une fonction dans une boucle ?
    Bonjour à tous,

    Lorsque un formulaire est long et comporte de nombreux champs, peut-on remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $nom = htmlspecialchars($_POST['nom']);
    $prenom = htmlspecialchars($_POST['prenom']);
    etc...
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $clean = array();
     
    foreach($_POST as $data){
    $datas = htmlspecialchars($data); // ou autre fonction de nettoyage
    $clean[] = $datas;
    }
    et ensuite exploiter le tableau clean comme on le ferait de $_POST.
    Et par ailleurs, quelle fonction employez-vous le plus volontiers pour sécuriser les données ? mysql_real_escape_string, htmlspecialchars, strip_tags...ou une combinaison ?



    J'ai lu toutes sortes de possibilités sur les tutos / forums...

    Merci de vos lumières.

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    la fonction "htmlspecialchars" suffit largement pour afficher du code XHTML
    par contre rajoute les 2e et 3e arguments pour prendre en compte l'encodage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    htmlspecialchars($variable, ENT_COMPAT, 'UTF-8');
    et pour la boucle il n'y a pas de problème, ça rendra ton code plus clair

  3. #3
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Tu as la fonction array_map

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_POST = array_map(htmlspecialchars,$_POST);

  4. #4
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Merci à vous. Oui effectivement, array_map c'est impec et plus simple.
    Cependant, j'ai des doutes (je deviens parano) que htmlspecialchars soit suffisant pour éviter les attaques...

    Sur un de mes sites, j'ai vu toutes les pages nommées "index" et les pages HTML avec du javascript par kilomètres contenant des liens vers des sites de fesse russes. Les pirates seraient rentrés par les formulaires ?

  5. #5
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Citation Envoyé par renaud26
    Sur un de mes sites, j'ai vu toutes les pages nommées "index" et les pages HTML avec du javascript par kilomètres contenant des liens vers des sites de fesse russes. Les pirates seraient rentrés par les formulaires ?
    Difficile de déterminer l'origine, tu dois bien profiler tous les aspects : scripting, accès ftp, etc.

  6. #6
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Citation Envoyé par Thes32 Voir le message
    Difficile de déterminer l'origine, tu dois bien profiler tous les aspects : scripting, accès ftp, etc.
    Mouais....ben je suis pas prêt de ne plus être parano... connais-tu un tuto / article complet qui rassemblerait ces types d'attaques et leurs parades ?

  7. #7
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853

  8. #8
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Je te remercie beaucoup.
    Passe une bonne soirée.

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

Discussions similaires

  1. Appel d'une fonction dans une fonction d'une même classe
    Par script73 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/03/2015, 11h18
  2. Réponses: 2
    Dernier message: 03/04/2013, 21h06
  3. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 20h05
  4. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 27/08/2007, 00h04
  5. [PHP-JS] une fonction dans une fonction
    Par lodan dans le forum Langage
    Réponses: 6
    Dernier message: 25/06/2006, 20h14

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