Contrôle JavaScript

Résolu/Fermé
seurjer Messages postés 2 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 7 janvier 2009 - 7 janv. 2009 à 09:08
seurjer Messages postés 2 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 7 janvier 2009 - 7 janv. 2009 à 11:41
Bonjour,

J'ai créé un formulaire de contact sur mon site internet avec les vérifications JavaScript suivante:
1. Tous les champs doivent être remplis
2. Le champ de l'adresse e-mail doit contenir un caractère "@" et un "."

Mon problème est que malgré ça, je reçois de temps en temps un e-mail provenant de mon formulaire complètement vide.
Après quelques vérifications (il m'est en effet impossible d'envoyer un e-mail vide en tant qu'utilisateur) et la récupération de l'adresse IP de l'expéditeur, je me suis rendu compte que l'e-mail est envoyé par des serveurs aux US, donc je soupçonne un "pirate" qui s'amuse a passer à travers mes protections.

Mon formulaire est en PHP et les contrôles en JavaScript. J'ai séparé les codes PHP et JavaScript dans des fichiers différents.

Mes questions:
1. Comment et par quel moyen la personne fait elle pour passer à travers les protections et envoyé le formulaire malgré tout?
2. Que puis-je mettre en place pour résoudre ce problème?

D'avance merci pour votre aide.
A voir également:

2 réponses

Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328
7 janv. 2009 à 10:51
Bonjour Seurjer,
Ton formulaire, tu l'envoies en post ou en get ?

Si c'est du get, il suffit au malfaiteur d'essayer d'accéder à une url qu'il crée dynamiquement (et donc il ne passe pas par ta page, et donc les contrôles javascript ne sont pas pris en compte).
Si c'est via la méthode Post par contre, je ne sais pas trop comment c'est possible.
Une dernière possibilité est que l'utilisateur n'a pas activé javascript, et donc aucun contrôle n'est effectué (après je ne sais pas si ton envoi de formulaire est géré par javascript ou non).

La solution qui est souvent utilisée est de mettre en place les contrôles en double: à la fois dans le javascript et dans le php.
L'avantage, c'est que si le malfaiteur "contourne" ton javascript, le contrôle se fera aussi côté serveur, et donc sa demande ne passera pas. De plus, en terme de performance, c'est 2 ou 3 contrôles ne sont pas coûteux donc ça ne dérange pas trop.

Ce qu'il faut savoir, c'est que le javascript c'est bien, mais ça a des inconvénients. Un contrôle de ce type en javascript est surtout bénéfique pour l'utilisateur, car il sait que les informations ne sont pas envoyées instantanément (alors qu'en php il devrait attendre un aller-retour serveur). L'inconvénient, c'est que de ton côté, tu ne sais pas si le contrôle a bien été effectué, donc il est préférable de l'implémenter aussi côté serveur.

Cordialement,
seurjer Messages postés 2 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 7 janvier 2009
7 janv. 2009 à 11:41
Bonjour Marco,

Merci beaucoup pour ton explication rapide, précise et détaillée.
Alors j'envoie bien mes données via la méthode POST.
J'ai fais l'essai en désactivant le JavaScript et en effet, j'arrive à envoyer des e-mails vide... J'y avais pas pensé ;-/

Je vais donc mettre en place une série de contrôle via PHP.

Encore merci pour le coup de pouce.
Meilleures salutations