Empecher le spam de formulaire php ?

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Stellvia, 24 Novembre 2007.

  1. Stellvia
    Stellvia WRInaute impliqué
    Inscrit:
    28 Décembre 2004
    Messages:
    566
    J'aime reçus:
    5
    Hello,

    Savez vous comment faire pour minimiser le spam des formulaires de contact qui envois un mail en php ? ( j'aimerais éviter d'utiliser un captcha )

    Je me prend des tonnes de mails de robots :/
     
  2. OTP
    OTP WRInaute accro
    Inscrit:
    16 Décembre 2005
    Messages:
    14 581
    J'aime reçus:
    3
    Tiens, voilà un exemple : -http://www.thewindpower.net/01-webmaster-eolien.php

    Avec un test sur le contenu du champ antispam.

    Totalement efficace.
     
  3. domdom26
    domdom26 WRInaute occasionnel
    Inscrit:
    9 Novembre 2004
    Messages:
    499
    J'aime reçus:
    0
    Dépêche toi vite de corriger la situation, car ces spameurs utilisent ton formulaire pour envoyer du spam à d.autres personne et ton ip sera blaclisté pour l'envoie de courriel :(

    http://www.blacklistedip.com/

    si jamais tu te fais blacklisté ;)
     
  4. Kmacleod
    Kmacleod WRInaute passionné
    Inscrit:
    28 Novembre 2002
    Messages:
    2 456
    J'aime reçus:
    0
    Si ton site est franco français, tu peux tester la langue du navigateur
     
  5. [--Eric--]
    [--Eric--] WRInaute occasionnel
    Inscrit:
    6 Janvier 2004
    Messages:
    352
    J'aime reçus:
    0
    Change l'adresse de la page... en évitant de lui donner un nom "générique".
     
  6. dudo
    dudo WRInaute impliqué
    Inscrit:
    10 Janvier 2004
    Messages:
    532
    J'aime reçus:
    0
    Hello,
    Savez vous comment faire pour minimiser le spam des formulaires de contact qui envois un mail en php ? ( j'aimerais éviter d'utiliser un captcha )
    Je me prend des tonnes de mails de robots :


    pour les amateurs de codes a mettre dans un formulaire, le 2em
    80% des spammeurs dans mon cas, ils postent ( les robots) un Href, un http ou il ne faut pas. Dans ce cas il faut prevenir les visiteurs avant que le lien n'est pas autorisé a cet endroit.

    [/code]
     
  7. Victor BRITO
    Victor BRITO WRInaute occasionnel
    Inscrit:
    21 Décembre 2006
    Messages:
    332
    J'aime reçus:
    0
    Une façon efficace d'éviter de voir son formulaire PHP se transformer en redoutable serveur de spam est de se prémunir contre les injections d'en-tête. Ceux qui ne savent de quoi je parle pourront lire avec intérêt cet article qui, bien qu'il date de 2003, est toujours utile.
     
  8. Stellvia
    Stellvia WRInaute impliqué
    Inscrit:
    28 Décembre 2004
    Messages:
    566
    J'aime reçus:
    5
    Merci , c'est ce genre d'article que je cherchais justement .

    Le problème est que la solution proposé

    Code:
    if (eregi("\r",$from) || eregi("\n",$from)){
    die("Why ?? :(");
    }
    Ne fonctionne pas , c'est le symbole \ qui bloque et fait bugué eregi ( essayé vous verrez )
     
  9. cleden
    cleden WRInaute impliqué
    Inscrit:
    6 Janvier 2003
    Messages:
    911
    J'aime reçus:
    0
    Je pense quand même qu'il vérifie l'adresse mail entrée dans le formulaire avant d'envoyer le mail :wink:
     
  10. Victor BRITO
    Victor BRITO WRInaute occasionnel
    Inscrit:
    21 Décembre 2006
    Messages:
    332
    J'aime reçus:
    0
    Essaie avec ce code :
    Code:
    if (preg_match("/\r/i",$from) || preg_match("/\n/i",$from)){
    die("Why ?? :(");
    }
     
  11. Stellvia
    Stellvia WRInaute impliqué
    Inscrit:
    28 Décembre 2004
    Messages:
    566
    J'aime reçus:
    5
    Salut Victor BRITO

    Merci pour ton aide , mais ca ne fonctionne pas non plus .

    Pour être plus clair le mail avec comme expediteur \n ou \r est quand même envoyer , eregi ne detecte pas \n

    ( c'est toujours \ qui fait déconner )
     
  12. Victor BRITO
    Victor BRITO WRInaute occasionnel
    Inscrit:
    21 Décembre 2006
    Messages:
    332
    J'aime reçus:
    0
    8O

    Bizarre...

    Essaie de poser ton problème sur PHPFrance.

    Je suis vraiment étonné d'entendre que ça ne marche pas.
     
  13. Stellvia
    Stellvia WRInaute impliqué
    Inscrit:
    28 Décembre 2004
    Messages:
    566
    J'aime reçus:
    5
    SAlut tout le monde

    Bon ... je suis bien embeté , je continus a recevoir des dizaines de mails de spam par jour , qui sont envoyé depuis mon formulaire de contact .

    J'aimerais bien comprendre comment faire pour empecher ca , ca me saoule .

    Je verifie pourtant l'email de l'expediteur mais rien n'y fait , les mails que je recois ont le sujet modifié , du style :

    [Edit OTP : texte supprimé.
    Tu veux faire sortir WRI sur des requêtes douteuses ? :lol: ]


    bref vous voyez le genre .....
     
  14. lothar
    lothar WRInaute passionné
    Inscrit:
    12 Juillet 2003
    Messages:
    1 076
    J'aime reçus:
    0
    Intègre un captcha comme reCaptcha, chez moi ça fonctionne parfaitement.
     
  15. rog
    rog WRInaute passionné
    Inscrit:
    21 Septembre 2006
    Messages:
    1 346
    J'aime reçus:
    0
    pas eu le temps de lire l'article mais je presume qu'il traite d'injection de clrf dans la variable to dans le but de rajouter des bc ou cc

    les symboles cl et rf sont des caractères invisibles en mode texte donc ils ont la representation \n \r

    et php peut très bien les traiter dans leurs formats invisibles par les fonctions chr() et ord()

    on trouvera la correspondance en index dans la table ascii

    http://asciitable.com/

    CR = index decimal 13
    LF = index decimal 10

    rog
     
  16. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 024
    J'aime reçus:
    1
    j'ai peut être pas tout compris mais si Stellvia reçoit le spam c'est pas une histoire d'injection car ça ser surtout a changer le destinataire.

    classique, perso j'ai juste ajouté un champ dans mes formulaire précédé d'une question idiote genre 'quel est la couleur de cette voiture rouge ? ' je ne fais pas 'tourner la question, c'est tjs la même et plus de spam. (juste une ligne de test a faire sur le script de traitement du formulaire pour voir si la réponse est bien rouge) ...
     
  17. Stellvia
    Stellvia WRInaute impliqué
    Inscrit:
    28 Décembre 2004
    Messages:
    566
    J'aime reçus:
    5
    Sisi c'est de l'injection car ils arrivent même à modifier le titre de message par ce qu'ils veulent , et je supose que le mail n'est pas envoyé qu'a moi .

    Je vais voir du coté des fonctions fonctions chr() et ord() , je reviens pour donner des nouvelles .

    Pour lothar , je ne veux pas mettre de catcha car je ne veux pas ennuyer les gens avec un catcha , je prefererais éviter , mais si vraiment je trouve pas de solution pour filtrer ces abus par php , et bien je mettrais un captcha :/
     
  18. bidulemachin
    bidulemachin WRInaute discret
    Inscrit:
    5 Octobre 2007
    Messages:
    100
    J'aime reçus:
    0
  19. rog
    rog WRInaute passionné
    Inscrit:
    21 Septembre 2006
    Messages:
    1 346
    J'aime reçus:
    0
    oui mais au passage bidule machin

    le captcha ne protege pas contre les injections headers qui visent à utiliser ton script à des fins frauduleuses voir carrément criminelles

    rog
     
  20. bidulemachin
    bidulemachin WRInaute discret
    Inscrit:
    5 Octobre 2007
    Messages:
    100
    J'aime reçus:
    0
    Je suis pas fan du Captcha non plus. Il est souvent contraignant et bloque les personnes malvoyantes..
     
  21. rog
    rog WRInaute passionné
    Inscrit:
    21 Septembre 2006
    Messages:
    1 346
    J'aime reçus:
    0
    lol

    ce que je voulais dire c'est qu'il faut au moins les deux

    - un système pour bloquer les bots
    - un système pour bloquer les injections headers

    à savoir que une verification chr(13) ou 10 n'est pas suffisante pour bloquer l'injection avec une injection sur le socket

    rog
     
  22. bidulemachin
    bidulemachin WRInaute discret
    Inscrit:
    5 Octobre 2007
    Messages:
    100
    J'aime reçus:
    0
    Et mon post ne concernait que les attaques robot
     
  23. philouseb
    philouseb WRInaute impliqué
    Inscrit:
    2 Novembre 2006
    Messages:
    593
    J'aime reçus:
    1

    Bonjour, je suis conscient que je remonte un vieux topic :O

    OTP, ton système anti-spam m'interresse... Mais je suis nul en php :)

    Est ce que te demander les sources est déplacé ??

    Merci d'avance
     
  24. franceradio
    franceradio WRInaute occasionnel
    Inscrit:
    19 Avril 2007
    Messages:
    473
    J'aime reçus:
    0
    captcha spécial pour les useragent robots ;)


    Tu veux voir un sample? dit "vive la Tunisie" avant :D
     
  25. OTP
    OTP WRInaute accro
    Inscrit:
    16 Décembre 2005
    Messages:
    14 581
    J'aime reçus:
    3
    Non, pas de souci, je te prépare ça.
     
  26. OTP
    OTP WRInaute accro
    Inscrit:
    16 Décembre 2005
    Messages:
    14 581
    J'aime reçus:
    3
    Dans le fichier que contient le formulaire :

    Code:
    <form method="post" action="mail.php">	
    <p><input type="text" value="Nom" size="35" name="sender_name" onfocus="javascript:this.value=''" /></p>
    <p><input type="text" value="Adresse mail" size="35" name="sender_email" onfocus="javascript:this.value=''" /></p>
    <p><input type="text" value="Tapez ici le mot 'antispam'" size="35" name="antispam" onfocus="javascript:this.value=''" /></p>
    <p><textarea name="message" cols="40" rows="5"></textarea></p>
    <p><input type="submit" value="Envoyer" /></p>
    </form>
    Dans le fichier mail.php qui s'affiche après le clic sur le bouton :

    Code:
    <?php
    if ($antispam == 'antispam')
    {
    	$msg = "Nom:\t$sender_name\n";
    	$msg .= "Mail:\t$sender_email\n";
    	$msg .= "Message:\t$message\n\n";
    
    	$recipient = "webmaster@tonsite.net";
    	$subject = "Formulaire rempli par un visiteur";
    
    	$mailheaders = "From: $sender_email\n";
    	$mailheaders .= "Reply-To: $sender_email\n\n";
    
    	mail($recipient, $subject, $msg, $mailheaders);
    
    	echo "<p>Votre message a été envoyé.</p>";
    	echo "<p>Il sera traité dès que possible.</p>";
    }
    else
    {
    	echo "<p>Demande non prise en compte, sécurité antispam non satisfaite.</p>";
    	echo "<p>Merci de saisir 'antispam' dans le champ de sécurité (le troisième).</p>";
    	echo "<p><a href=\"Javascript:history.go(-1)\">Retour au formulaire</a></p>";
    }
    ?>
    On peut largement améliorer ça, sans doute.
     
  27. philouseb
    philouseb WRInaute impliqué
    Inscrit:
    2 Novembre 2006
    Messages:
    593
    J'aime reçus:
    1
    Merci OTP...

    Je vais le mettre en place.
     
  28. oli004
    oli004 WRInaute passionné
    Inscrit:
    5 Janvier 2005
    Messages:
    1 629
    J'aime reçus:
    0
    J'utilise une variante de ce principe sur mes divers formulaires. La différence est que je cache le champs à tester par un display none via css et je verifie si le champs est vide avant d'envoyer le formulaire.

    Je suis parti du principe que les robots remplissent systematiquement les champs avec du contenu aleatoire.
    Hors un humain lui, ne voyant pas le champs de test, ben.... il ne le rempli pas.

    DOnc si le champs de test est vide > j'envoie le formulaire, et si il est renseigné, je n'envoie rien.

    Cette solution fonctionne pour moi depuis plus d'un an sur plusieurs sites.
     
  29. OTP
    OTP WRInaute accro
    Inscrit:
    16 Décembre 2005
    Messages:
    14 581
    J'aime reçus:
    3
    En effet, encore plus simple et plus facile pour le visiteur. Je note pour la prochaine version.
     
  30. TrAsKiN
    TrAsKiN WRInaute discret
    Inscrit:
    17 Juillet 2006
    Messages:
    121
    J'aime reçus:
    0
    perso j'ai utiliser un petit script en JavaScript qui modifie un champ caché et comme la plupart des robots n'ont pas le JavaScript d'activé je suis protégé !

    Installé ici : -http://www.commentarium.fr/poster.html
     
  31. philouseb
    philouseb WRInaute impliqué
    Inscrit:
    2 Novembre 2006
    Messages:
    593
    J'aime reçus:
    1
    Bonjour,

    J'ai une erreur :

    Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in mail.php on line 19
     
  32. OTP
    OTP WRInaute accro
    Inscrit:
    16 Décembre 2005
    Messages:
    14 581
    J'aime reçus:
    3
    C'est quoi ta ligne 19 ?
     
  33. philouseb
    philouseb WRInaute impliqué
    Inscrit:
    2 Novembre 2006
    Messages:
    593
    J'aime reçus:
    1
    Sur ma ligne 19 il y a juste : else

    Je précise que j'ai copié ton code sans changement...
     
  34. OTP
    OTP WRInaute accro
    Inscrit:
    16 Décembre 2005
    Messages:
    14 581
    J'aime reçus:
    3
    Il y a une double quote en trop dans le dernier echo mais ça ne doit pas expliquer cette erreur. Essaie quand même (je vais corriger plus haut).
     
  35. philouseb
    philouseb WRInaute impliqué
    Inscrit:
    2 Novembre 2006
    Messages:
    593
    J'aime reçus:
    1
    Ca marche... Merci

    Il suffit de pas grand chose...
     
  36. OTP
    OTP WRInaute accro
    Inscrit:
    16 Décembre 2005
    Messages:
    14 581
    J'aime reçus:
    3
    Tant mieux, je n'y croyais pas trop. Cette erreur vient du fait que j'ai simplifié le code pour l'exemple et un peu oublié un ".
     
  37. philouseb
    philouseb WRInaute impliqué
    Inscrit:
    2 Novembre 2006
    Messages:
    593
    J'aime reçus:
    1
  38. philouseb
    philouseb WRInaute impliqué
    Inscrit:
    2 Novembre 2006
    Messages:
    593
    J'aime reçus:
    1

    Salut, puis-je te demander tes sources aussi afin d'avoir une variante...

    Merci d'avance
     
Chargement...
Similar Threads - Empecher spam php Forum Date
Empêcher les spammeurs de connaitre mes emails Administration d'un site Web 11 Juin 2010
Empecher le Spam URL Rewriting et .htaccess 26 Mars 2007
Comment empecher les malotrus de spamer un site ? Administration d'un site Web 19 Novembre 2004
Comment empecher le spam de referer ? Problèmes de référencement spécifiques à vos sites 9 Octobre 2004
Empêcher le download mais autoriser la lecture mp3 URL Rewriting et .htaccess 17 Août 2021
WordPress Empêcher le scraping de mon site Administration d'un site Web 19 Novembre 2020
PHP empêcher form onsubmit si formulaire invalide Développement d'un site Web ou d'une appli mobile 29 Juin 2020
Comment empecher google d'indexer "une suite d'URL". Débuter en référencement 8 Mars 2020
Empêcher Googlebot de crawler/indexer tout un dossier Débuter en référencement 19 Avril 2019
désindexer et/ou empêcher crawl ? Crawl et indexation Google, sitemaps 4 Janvier 2019
Patron de Qwant : "Google essaye d'empêcher ..." Autres moteurs de recherche connus 1 Novembre 2018
Empêcher les majuscules dans les URL Débuter en référencement 27 Avril 2018
Empécher indexation Crawl et indexation Google, sitemaps 10 Avril 2018
Comment empêcher les gens de faire du copier coller ? Débuter en référencement 21 Janvier 2018
Empêcher des script javascript d'etre indexer Crawl et indexation Google, sitemaps 13 Mars 2017
Comment empêcher le crawl sur les pages "filter" et "order" Débuter en référencement 20 Janvier 2017
empêcher des caractères comme /?longurlwascutoff_0&& derrière l'url d'un site URL Rewriting et .htaccess 30 Avril 2016
Empêcher l'indexation de mon fichier sitemap Débuter en référencement 29 Avril 2016
empêcher une partie du site de visualisation Développement d'un site Web ou d'une appli mobile 30 Mars 2016
Empêcher google d'utiliser mon formulaire de filtre d'articles ? Développement d'un site Web ou d'une appli mobile 11 Mars 2016