PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 14-12-2011 20:36:44

phpdos
Membre
Inscription : 22-12-2009
Messages : 72

empêcher de écrire un script dans un champ

Bonjour,

j'ai une question un peu générale :
Comment peut-on empêcher de mettre/écrire un script dans un champ d'un formulaire en PHP sans utiliser la classe captcha?


Brave autiste
Cl... clown
Cl ? Cl ? Est-ce que j'ai une gueule de clowns ?
                  @*|*@

Hors ligne

#2 14-12-2011 21:14:10

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : empêcher de écrire un script dans un champ

Bonsoir,

Le meilleur moyen est d'utiliser des regexp.
Sauf erreur de ma part, la classe captcha ne sert pas du tout à cela, et du coup, sincérement j'ai failli te répondre, que pour ne pas utiliser la classe captcha, le meilleur moyen, c'est de ne pas la mettre^^ big_smile

++

Dernière modification par Jc (14-12-2011 21:14:46)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#3 14-12-2011 22:46:51

phpdos
Membre
Inscription : 22-12-2009
Messages : 72

Re : empêcher de écrire un script dans un champ

Bonsoir Jc,
Avec Regex (Expressions régulières) ? Faut-il mettre un contrôle à chaque champs dans un formulaire ?:mad:
Comment peut-on faire pour que l'on ne mette pas un script ?:mad: En fait, on peut empêcher certains caractères avec Regex, mais quel caractère il faut les empêcher pour que le script ne marche ?

bonne nuit


Brave autiste
Cl... clown
Cl ? Cl ? Est-ce que j'ai une gueule de clowns ?
                  @*|*@

Hors ligne

#4 14-12-2011 23:03:25

ManicoW
Cowrespondant
Lieu : Tours
Inscription : 08-05-2009
Messages : 192
Site Web

Re : empêcher de écrire un script dans un champ

Bonsoir,

Quand il s'agit de sécurité, autant que possible, il faut filtrer au maximum, donc il vaut mieux partir du principe que tout est interdit sauf ce qu'on autorise plutot que de tout autoriser sauf ce qu'on interdit.

Ainsi, pour un champs dans lequel on attends que des chiffres, on va mettre une regex qui va vérifier qu'il n'y a que des chiffres, etc... le plus dur étant de prévoir suffisament large dans ce qui est autorisé (pour les chiffres, ca va, mais pour un nom par exemple, avec les noms composés, les accents bizares, ca devient tout de suite plus dur).

Ensuite il faut tester chaque champs selon ce qu'on a autorisé. Le cas le plus complexe étant les corps de message, car là il peut vraiment y avoir plein de choses. Mais php n'est pas trop mal foutu, pour filtre le html, il existe quelques fonctions : strip_tag , html_entities par exemple.

Bon courage

@+


la v2, c'est tabou, on en viendra tous a bout

Hors ligne

#5 15-12-2011 13:02:58

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : empêcher de écrire un script dans un champ

Bonjour,

Pour répondre à ta question, prends le temps de réfléchir, regarde sur un texte les caractères que tu utilises, ceux qui sont habituellement utilisés dans un script (selon le language), compare, et tu auras la réponse. C'est sur que si tu fais un formulaire de réponse en Anglais, tu auras un peu plus de mal, et faudra tenir compte du contexte.
Déjà interdit tous les opérateurs arithmétiques, puis je te laisse réfléchir à la question pour le reste. Prends en compte aussi l'utilisation que tu en fais, par exemple si tu mets tout dans une BD contrôle par rapport à une syntaxe SQL, si en plus certains champs doivent être interprétés comme par exemple du js, evite de le faire saisir par l'utilisateur ou interdit un window.open par exemple, etc, etc...

++


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#6 15-12-2011 18:31:48

phpdos
Membre
Inscription : 22-12-2009
Messages : 72

Re : empêcher de écrire un script dans un champ

Bonjour ManicoW et Jc,

Merci vos conseils et bonne journée


Brave autiste
Cl... clown
Cl ? Cl ? Est-ce que j'ai une gueule de clowns ?
                  @*|*@

Hors ligne

Pied de page des forums