Base de connaissances
1 000 FAQ, 500 tutoriels et vidéos explicatives. Ici, il n'y a que des solutions !
Spam: l'éviter avec un formulaire de contact (formmail.pl ou autre)
Les spammeurs repèrent facilement les pages ayant un script de formulaire (contact ou feedback par exemple) envoyant un email. Ils vérifient ensuite la présence d'une faille: beaucoup de formulaires de contact ne vérifient pas la présence de retour de ligne dans certains champs, en particulier celui de l'email de l'expéditeur à compléter dans les formulaires.
Actions Ă effectuer
Nous agissons de toute façon en aval: nous filtrons les retours chariots présents dans les headers passés à la fonction mail() de PHP. Mais vous devez
- protéger vos scripts d'envoi de mail par un système de CAPTCHA ou par la mise en place d'une restriction explicite des destinataires
- lors de l'envoi de mail via la commande mail() de PHP, vous assurer que les arguments fournis ont été validés préalablement à leur utilisation. Les valeurs reçues d'un formulaire doivent être vérifiées avant utilisation par la fonction mail().
- remplacer les éventuels retours de ligne dans chacun des champs qui doivent normalement contenir un email (ce champ est souvent nommé $email, $sender ou $from):
<code>$EMAIL = str_replace("\n", "", str_replace("\r", "", $EMAIL));</code>
En savoir plus
Le spammeur exploite les scripts ressemblant Ă ceci:
<code>$MESSAGE = $_POST[msg];$RECIPIENT = "webmaster@votredomaine.com";$SUBJECT = "Formulaire de contact";$EMAIL = $_POST[email];// Sans cette ligne votre script est exploitable !!!!$EMAIL = str_replace("\n", "", str_replace("\r", "", $EMAIL));mail($RECIPIENT, $SUBJECT, $MESSAGE, "From: $EMAIL");</code>
Lien vers cette FAQ: