Page 1 sur 1

Sécurité pour formulaires de messages

Posté : 25 oct. 2006, 00:18
par jpsartre
Bonjour,

J'ai l'impression que quelqu'un utilise mon formulaire de contact pour faire du spam.
Voilà le mail que j'ai reçu (+ 5 autres du même type) par mon formulaire de contact :
> ************ Le 24/10/2006 09:19:30 ***********
>
> NOM : *********@monsite.com
> PRENOM : hams
> Content-Type: multipart/alternative;
> boundary=9dc1ee9749a696f5b8f6d4ed87d3b95e
> X-Mailer: AOL 5.0 for Mac sub 28
> Subject: arma) and the panish amon serrano (notably the
> to: *********@yahoo.com
> to: *********@yahoo.com
> to: *********@hotmail.com
> to: *********@network2000-hi.com
> to: *********@yahoo.com
> to: *********@aol.com
> to: *********@yhaoo.com
> to: *********@telus.net
> to: *********@yahoo.net
>
> This is a multi-part message in MIME format.
>
> --9dc1ee9749a696f5b8f6d4ed87d3b95e
> Content-Transfer-Encoding: 7bit
> Content-Type: text/plain
>
> edit rance ayonne am e ambon de ayonne aking its name from the ancient
> port
> city of ayonne in the
>
> --9dc1ee9749a696f5b8f6d4ed87d3b95e
> Content-Transfer-Encoding: 7bit
> Content-Type: text/plain
>
> no steroids, no fish oils, no
>
> --9dc1ee9749a696f5b8f6d4ed87d3b95e--
> .
>
> MAIL : *********@monsite.com
> TEL : *********@monsite.com
> MESSAGE : *********@monsite.com
>
> *****************************************************
> *********@monsite.com
> *****************************************************
>
>
Je vous montre aussi le code de ce formulaire :

Code : Tout sélectionner

if ($submit) { $Lang = 'FR'; switch ($Lang) { case 'FR': $OK = 'Votre demande a bien &eacute;t&eacute; enregistr&eacute;e.<br>' .'Nous vous contacterons prochainement.'; $ERR = 'Il y a eu un probl&egrave;me<BR>lors de la transmission' .'Veuillez re-essayer un peu plus tard<BR>ou envoyez nous un E-mail' .'<A href="mailto:[email protected]">[email protected]</A>'; break; case 'EN': $OK = 'Your request has been well sent We will contact you soon'; $ERR = 'There was a problem during the transmission' .'Please try again later<BR>or send us an E-mail' .'<A href="mailto:[email protected]">[email protected]</A>'; break; } /* Verif & Init variables */ if (empty($mail)) $mail = "(pas d'email)"; $host = gethostbyaddr($REMOTE_ADDR); $date = date("d/m/Y H:i:s"); $f_sujet='**** Site Web : '.$sujet; $f_msg = "************ Le $date ***********\n\n"; $f_msg .= "NOM : $nom\n"; $f_msg .= "PRENOM : $prenom\n"; $f_msg .= "MAIL : $mail\n"; $f_msg .= "TEL : $tel\n"; $f_msg .= "MESSAGE : $message\n"; $f_msg .= "\n"; $f_msg .= "*****************************************************\n"; $f_msg .= $message; $f_msg .= "\n*****************************************************\n"; // $f_msg .= "Envoyé par $host ($REMOTE_ADDR),\n"; $entetedate = date("D, j M Y H:i:s -0600"); $entetemail = "From: $mail\n"; $entetemail .= "Cc:\n"; $entetemail .= "Bcc:\n"; $entetemail .= "Reply-To: $mail\n"; $entetemail .= "X-Priority: 1\n"; $entetemail .= "X-Mailer: PHP/" . phpversion() . "\n" ; $entetemail .= "Date: $entetedate"; $resp = @mail ( '[email protected]', $f_sujet, $f_msg, $entetemail ); if ($resp) echo $OK; else echo $ERR; } ?> <form action="contact.php" method="post"> <fieldset> <legend>Contactez-nous*</legend> <p> <label> <input name="nom" type="text" id="nom" value="Nom" size="25" maxlength="50" /> </label> <label> <input name="prenom" type="text" id="prenom" value="Pr&eacute;nom" size="25" maxlength="50" /> </label> </p> <p> <label> <input name="mail" type="text" id="mail" value="Mail" size="25" maxlength="50" /> </label> <label> <input name="tel" type="text" id="mail" value="T&eacute;l&eacute;phone" size="25" maxlength="50" /> </label> </p> <p> <label> <textarea name="message" cols="42" rows="4" id="message">Message</textarea> </label> </p> <input name="submit" type="submit" class="bouton" value="Envoyer"> </fieldset> </form>
Si quelqu'un peut me confirmer ce problème et m'indiquer la marche à suivre pour le résoudre.
Je me souviens avoir lu quelquepart des choses à ce sujet avec htmlentities et ereg pour traiter les variables Post, je crois, mais je ne connais pas cela.

J'espère que vous pourrez m'aider,

Merci

Posté : 25 oct. 2006, 07:23
par Cyrano
Ça ne correspond pas : regarde notamment la ligne X-Mailer : ton formulaire indique PHP et la version alors que ton spam indique AOL 5.0 pour Mac. D'autre part, le nombre de destinataire ne colle pas non plus, ton code ne prévoit aucune copie à qui que ce soit et le spam est envoyé à 9 personnes.

Ceci dit, on alimentera pas les spamBots, j'ai édité ton message pour virer les adresses de courriel affichées.

Posté : 26 oct. 2006, 21:19
par jpsartre
Bonjour,

Merci pour cette explication qui me rassure.
C'est que comme l'adresse de l'expediteur utilisait le même nom de site que le mien avec juste la partie avant le @ qui changeait, je m'inquiétais.
Merci aussi d'avoir nettoyé le message. J'y penserai la prochaine fois.

A bientôt,