Se connecter avec
S'enregistrer | Connectez-vous
Votre question

Question

allstar27 http://m.bestofmedia.com/sfp/design/usr/fr/avatars/23/e4/223512.jpg
Expert Programmation
Initié
| dans Programmation

Question sécurité...

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:

  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?
0
Vous devez être inscrit pour voter pour une question
  • Partagez
  • Etre averti des réponses
  • Ajouter aux favoris
Lassé par la pub ? Créez un compte
Ces contenus peuvent également vous intéresser
Solutions (8)
Meilleure solution
crazycat@idn http://m.bestofmedia.com/sfp/design/usr/fr/avatars/58/81/216450.png
Expert Programmation
CrazyModérateur
Le plus simple à mon avis est de générer le formulaire et la vérification à partir des mêmes données:
  1. $pays = array('France', 'Belgique', 'Suisse', 'Luxembourg');
  2.  
  3. // Génération du formulaire
  4. foreach($pays as $val) {
  5. echo '<option value="'.$val.'">'.$val.'</option>'.chr(13).chr(10);
  6. }
  7.  
  8. // Vérification des données
  9. if (!in_array($_POST['pays'], $pays)) {
  10. // ERREUR
  11. } else {
  12. // C'est bon
  13. }


PS: ta syntaxe de vérification n'est pas bonne:
  1. if ($_POST['pays']!='valeur1' || $_POST['pays']!='valeur2')
  • Partagez
Autres solutions (7)
Trier par
allstar27 http://m.bestofmedia.com/sfp/design/usr/fr/avatars/23/e4/223512.jpg
Expert Programmation
Initié
Voter contre
Vous devez avoir un badge bronze dans cette catégorie pour votre contre une solution.
Score 0
Voter pour
Ce score indique à quel point cette solution est soutenue par la communauté. Vous devez être inscrit pour voter pour une solution. Créez votre compte ou identifiez-vous.
Ah oui pas fais gaff à la signature...
J'avais utiliser ce serveur, il y a longtemps (je sais plus pourquoi) :) 

Bref, merci encore!
crazycat@idn http://m.bestofmedia.com/sfp/design/usr/fr/avatars/58/81/216450.png
Expert Programmation
CrazyModérateur
Voter contre
Vous devez avoir un badge bronze dans cette catégorie pour votre contre une solution.
Score 0
Voter pour
Ce score indique à quel point cette solution est soutenue par la communauté. Vous devez être inscrit pour voter pour une solution. Créez votre compte ou identifiez-vous.
un serveur IRC ? C'est fort possible, voir le premier lien dans ma signature :) 
allstar27 http://m.bestofmedia.com/sfp/design/usr/fr/avatars/23/e4/223512.jpg
Expert Programmation
Initié
Voter contre
Vous devez avoir un badge bronze dans cette catégorie pour votre contre une solution.
Score 0
Voter pour
Ce score indique à quel point cette solution est soutenue par la communauté. Vous devez être inscrit pour voter pour une solution. Créez votre compte ou identifiez-vous.
Ca marche nikel en créant un tableau (array)

Merci crazycat (ton pseudo me fais penser à un serveur IRC, possible?)
allstar27 http://m.bestofmedia.com/sfp/design/usr/fr/avatars/23/e4/223512.jpg
Expert Programmation
Initié
Voter contre
Vous devez avoir un badge bronze dans cette catégorie pour votre contre une solution.
Score 0
Voter pour
Ce score indique à quel point cette solution est soutenue par la communauté. Vous devez être inscrit pour voter pour une solution. Créez votre compte ou identifiez-vous.
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>:

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


Ca suffit comme vérification?
crazycat@idn http://m.bestofmedia.com/sfp/design/usr/fr/avatars/58/81/216450.png
Expert Programmation
CrazyModérateur
Voter contre
Vous devez avoir un badge bronze dans cette catégorie pour votre contre une solution.
Score 0
Voter pour
Ce score indique à quel point cette solution est soutenue par la communauté. Vous devez être inscrit pour voter pour une solution. Créez votre compte ou identifiez-vous.
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.
allstar27 http://m.bestofmedia.com/sfp/design/usr/fr/avatars/23/e4/223512.jpg
Expert Programmation
Initié
Voter contre
Vous devez avoir un badge bronze dans cette catégorie pour votre contre une solution.
Score 0
Voter pour
Ce score indique à quel point cette solution est soutenue par la communauté. Vous devez être inscrit pour voter pour une solution. Créez votre compte ou identifiez-vous.
Ok, donc c'est pareil avec les valeur d'un select, checkbox, radio...
On peut donc changer les valeurs d'insertion?
crazycat@idn http://m.bestofmedia.com/sfp/design/usr/fr/avatars/58/81/216450.png
Expert Programmation
CrazyModérateur
Voter contre
Vous devez avoir un badge bronze dans cette catégorie pour votre contre une solution.
Score 0
Voter pour
Ce score indique à quel point cette solution est soutenue par la communauté. Vous devez être inscrit pour voter pour une solution. Créez votre compte ou identifiez-vous.
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.
Lassé par la pub ? Créez un compte
non identifié
Vous n'êtes pas identifié. Se connecter ou S'enregistrer
Tom's guide dans le monde