Protéger un formulaire php

Résolu/Fermé
Mael687 Messages postés 26 Date d'inscription mercredi 23 octobre 2013 Statut Membre Dernière intervention 15 mars 2015 - 1 juin 2014 à 18:19
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 2 juin 2014 à 19:39
Bonjour !

Même s'il se peut que je sois l'auteur du millième topic sur le sujet, les résultats que j'ai trouvé sur openclassroom etc ne m'ont pas beaucoup aidé dans le sens ou les tutos font 6 pages ...

Alors voilà, j'ai un formulaire tout à fait basique d'inscription, case pseudo, mail, deux mots de passe et une de choix de couleur du background, mais on m'a informé que n'importe qui pouvait "inspecter l'élément", changer la valeur d'une couleur et valider, ainsi en rajoutant quelques scripts, je suis vulnérable !!

Voili voilou, quelqu'un pourrait m'indiquer une façon simple et claire de ne pas permettre ces contournements, j'ai entendu parler de la protection des variables avec un string (je me souviens que de ce mot :D) mais je ne sais pas ou mettre les codes, par quels valeurs remplacer "mavariable" etc... Bref, la cata !

En l'attente d'une réponse, mes salutations distinguées !
A voir également:

2 réponses

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
1 juin 2014 à 19:21
Bonjour !
En résumé, oui, n'importe qui peut envoyer n'importe quel valeurs dans un $_GET/$_POST que ce soit un champ text, color, ou même hidden.

Toute les variables doivent donc être protégé selon ce qui tu attends.

- Pour un entier, intval effacera tout caractère non numérique (Floatval pour les virgules)
- Pour une chaîne simple, sans balise tu peut déjà applique un strip_tags, qui supprimera toutes les balises ou htmlspecialchars qui convertira les caractères spéciaux en caractère html.
- Si il y a insertion dans une base de donnée, il faut faire attention aux injections (mysql_real_escape_string ou similaire, ou requête préparé)

Et enfin, pour les valeurs spécifiques (Un code hexadécimal par exemple), tu peut vérifier via les regex.

PS : String signifie simplement chaîne de caractère
0
Mael687 Messages postés 26 Date d'inscription mercredi 23 octobre 2013 Statut Membre Dernière intervention 15 mars 2015
1 juin 2014 à 21:13
Merci beaucoup, donc j'ai mis une protection htmlspecialchars à tous les champs, j'ai testé, le XSS a l'air réglé, en revanche, un type a réussis à s'inscrire et à se mettre administrateur ...

C'est une injection ?

Comment la régler ?

Merci d'avance !
0
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
2 juin 2014 à 18:16
Pour pouvoir t'aider, il faudrait me montrer ta ligne d'insertion.
Mais Si tu rempli un champ is_admin ou type en ne te fiant qu'à un champ de type hidden, il a pu tout simplement le modifier et envoyer ce qu'il veut.
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
2 juin 2014 à 19:39
'lut, "je suis vulnérable", c'est à dire? Ton formulaire comporte un sélectionneur de couleur? Soit. Sache que n'importe qui peut changer toutes les couleurs de la page sur laquelle il se trouve via "inspecter l'élément", ou modifier manuellement les champs de ton formulaire; mais tu n'es en rien vulnérable: les changements de couleur sont temporaires et affichés uniquement la page tant qu'on ne la recharge pas. Et modifier le formulaire manuellement c'est identique à avec son clavier et sa souris "normalement".
-1