Tom's Guide > Forum > Programmation > [Résolu] Question sécurité...

[Résolu] Question sécurité...

Forum Programmation : [Résolu] Question sécurité...

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !

Lire la meilleure réponse, apportée par crazycat@idn.

Mot :    Pseudo :           
 

Bonjour,

J'ai une question qui me trotte dans la tête depuis un moment et je n'ai jamais vraiment testé pour en avoir le coeur net. Je m'explique:

J'ai un formulaire, on va faire simple avec un seul champ:

Code :
  1. <form method="post" action="execution.php">
  2. <input type="text" name="pseudo" maxlength="20" />
  3. <input type="submit" value="Valider" />
  4. </form>



Jusque là rien d'anormal. Maintenant imaginons que j'ai un autre FTP et que je crée le même formulaire, hormis le fais que, le maxlength soit à 30 et que l'action ne soit plus un lien relatif, mais un lien absolu qui redirige vers le meme fichier php... le maxlength 20 deviendra alors 30, si aucune restriction n'est fais du coté de php?

------------------------------ Rémunère ton site
Hosting Favicon
Clic pas ici
Le plus simple à mon avis est de générer le formulaire et la vérification à partir des mêmes données:

Code :
  1. $pays = array('France', 'Belgique', 'Suisse', 'Luxembourg');
  2. // Génération du formulaire
  3. foreach($pays as $val) {
  4.   echo '<option value="'.$val.'">'.$val.'</option>'.chr(13).chr(10);
  5. }
  6. // Vérification des données
  7. if (!in_array($_POST['pays'], $pays)) {
  8.   // ERREUR
  9. } else {
  10.   // C'est bon
  11. }
 

PS: ta syntaxe de vérification n'est pas bonne:

Code :
  1. if ($_POST['pays']!='valeur1' || $_POST['pays']!='valeur2')

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Tout à fait.
De toutes manières, il ne faut aucunement faire confiance aux restrictions html ou javascript, mais toujours avoir des vérifications PHP.

Je ne veux pas t'effrayer, mais ce n'est même pas la peine de faire une copie du formulaire pour passer outre, un simple coup de firebug permet à un utilisateur de le modifier très rapidement.

------------------------------ Réseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

Ok, donc c'est pareil avec les valeur d'un select, checkbox, radio...
On peut donc changer les valeurs d'insertion?

------------------------------ Rémunère ton site
Hosting Favicon
Clic pas ici
Répondre à Allstar27

Qu'appelles tu "les valeurs d'insertion" ? les value="" des champs de formulaire ? Avec firebug sans souci, d'où l'importance de faire de très bonnes vérifications côté serveur.

------------------------------ Réseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

Oui les value...
Rahhh c'est assez embêtant ça!

Comment vérifier que "les value" sont bien celles de mon formulaire?

Edit: Je pense avoir trouvé...

Exemple pour le <select> d'un pays avec 2 <option>:

Code :
  1. if ($_POST['pays'] != "Valeur1" OR "Valeur2" ) {
  2. ...



Ca suffit comme vérification?


Message édité par Allstar27 le 23-10-2009 à 09:55:57
------------------------------ Rémunère ton site
Hosting Favicon
Clic pas ici
Répondre à Allstar27
Meilleure réponse

Le plus simple à mon avis est de générer le formulaire et la vérification à partir des mêmes données:

Code :
  1. $pays = array('France', 'Belgique', 'Suisse', 'Luxembourg');
  2. // Génération du formulaire
  3. foreach($pays as $val) {
  4.   echo '<option value="'.$val.'">'.$val.'</option>'.chr(13).chr(10);
  5. }
  6. // Vérification des données
  7. if (!in_array($_POST['pays'], $pays)) {
  8.   // ERREUR
  9. } else {
  10.   // C'est bon
  11. }
 

PS: ta syntaxe de vérification n'est pas bonne:

Code :
  1. if ($_POST['pays']!='valeur1' || $_POST['pays']!='valeur2')


Message édité par crazycat@idn le 23-10-2009 à 10:37:29
------------------------------ Réseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

Ca marche nikel en créant un tableau (array)

Merci crazycat (ton pseudo me fais penser à un serveur IRC, possible?)

------------------------------ Rémunère ton site
Hosting Favicon
Clic pas ici
Répondre à Allstar27

un serveur IRC ? C'est fort possible, voir le premier lien dans ma signature :)

------------------------------ Réseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

Ah oui pas fais gaff à la signature...
J'avais utiliser ce serveur, il y a longtemps (je sais plus pourquoi) :)

Bref, merci encore!

------------------------------ Rémunère ton site
Hosting Favicon
Clic pas ici
Répondre à Allstar27
Tom's Guide > Forum > Programmation > [Résolu] Question sécurité...
Aller à :

Il y a 512 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Liens