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écurité] Sécurisation


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [Sécurité] Sécurisation
    Bonjour,

    Je suis confronté à un problème assez important la sécurisation de mes formulaires.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?
     
    echo'
    <form action="index.php?page=fiche" method="post" class="form">
    <select name="liste1">';
     
    for ($i=1;$i<11;$i++) {
    echo '<option value="texte'.$i.'">texte'.$i.'</option>';
    }
     
    echo'
    </select>
    <input type="hidden" name="action" value="edit">
    <input type="submit" value="Modifier"><br><br>
    </form>';
    mon problème est que lorsque que je regarde la source toutes les options sont listées en HTML et qu'à partir d'un serveur local j'arrive à modifier les données qui sont dans mes options

    J'aimerais pouvoir sécurisé cela en faisant un test du 'lieu d'émission' de mon formulaire mais une fois celui ci envoyé il est exécuté sur le serveur donc impossible de vérifié la source

  2. #2
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut

    comprends pas tout là...
    Tu ne pourras jamais être totalement sûr des données envoyées par ton formulaire, c'est pourquoi tout développeur se doit de vérifier l'intégrité de celles-ci.
    le fait de vérifier la provenance du formulaire ne t'aidera en tout cas pas à résoudre ce problème.

    je vois que tu envoies des valeurs numériques (<option value="1">), tu peux au moins tester le fait que cela soit bien le cas...
    la fonction is_numeric() t-y aidera.
    et si c'est juste pour ce formulaire en question, tu peux aussi vérifier qu'elle soient effectivement comprises entre 1 et 11

    voilà, je ne sais pas si ça répond à ta question mais je l'espère..
    ;-)

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    quelques heures plus tard...

    en fait j'ai mis mes variables dans une variable globale donc voici comment je procède ensuite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $return = "";
    	for ($i=0;$i<count($GLOBALS['race']);$i++) { 
    		if($_POST['race'] != $GLOBALS['race'][$i]) { $return .= 0; }
    		else { $return .= 1; }
    	}
     
    	if(!ereg("^[0]+$", $return)) { $return = 1; }
    	else { $return = 0; }
     
    	if ($return != 1) { echo 'Erreur'; }
     
    	else { echo 'OK'; }
    Vous pouvez aussi refaire la même chose si vos option se trouve dans une base de donnée ou même simplement si elles sont uniques il vous suffit de faire un array() avec vos données lors de la récupération et l'enregistrement du formulaire

  4. #4
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    heuuu je croyais que tu n'avais que des valeurs comprise entre 1 et 11 vu le select de ton formulaire, dans ce cas un simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $valeur=(!isset($_POST['liste1']))?(''):($_POST['liste1']);
    $erreur=($valeur <= 11 && $valeur > 0 )?"OK":"Erreur";
    echo $erreur;
    suffirait...

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

Discussions similaires

  1. Une erreur 233 de ms sql server
    Par Hokage dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 05/10/2009, 17h40
  2. Erreur 233 sous sql server
    Par brajae85 dans le forum Oracle
    Réponses: 3
    Dernier message: 18/05/2009, 16h12
  3. Réponses: 2
    Dernier message: 05/10/2004, 22h43

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