Empecher le spam de formulaire php ?

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


zeb
WRInaute accro
WRInaute accro
 
Messages: 1186
Inscription: Dim Déc 05, 2004 19:47

Message le Jeu Déc 06, 2007 13:05

Stellvia a écrit: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 .....


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) ...

Stellvia
WRInaute impliqué
WRInaute impliqué
 
Messages: 419
Inscription: Mar Déc 28, 2004 0:02

Message le Jeu Déc 06, 2007 14:06

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 :/


bidulemachin
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 102
Inscription: Ven Oct 05, 2007 8:15

Message le Jeu Déc 06, 2007 16:05

Le coup des champs de formulaire, ca marche plutôt bien. La plupart des robots ne sont pas adaptés et remplissent les champs aléatoirement.

Si tu veux te passer du captcha, tu peux toujours essayer :

http://www.phpcs.com/codes/ANTI-SPAM-AN ... 42273.aspx

ou encore :

http://www.oscommerce-fr.info/forum/ind ... opic=35136

A tester...


rog
WRInaute accro
WRInaute accro
 
Messages: 1662
Inscription: Jeu Sep 21, 2006 2:32

Message le Jeu Déc 06, 2007 16:09

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


bidulemachin
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 102
Inscription: Ven Oct 05, 2007 8:15

Message le Jeu Déc 06, 2007 16:18

rog a écrit: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


Je suis pas fan du Captcha non plus. Il est souvent contraignant et bloque les personnes malvoyantes..


rog
WRInaute accro
WRInaute accro
 
Messages: 1662
Inscription: Jeu Sep 21, 2006 2:32

Message le Jeu Déc 06, 2007 16:23

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


bidulemachin
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 102
Inscription: Ven Oct 05, 2007 8:15

Message le Jeu Déc 06, 2007 16:43

rog a écrit: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


Et mon post ne concernait que les attaques robot


philouseb
WRInaute passionné
WRInaute passionné
 
Messages: 622
Inscription: Jeu Nov 02, 2006 9:36

Message le Mer Juil 23, 2008 11:01

OTP a écrit:Tiens, voilà un exemple : -http://www.thewindpower.net/01-webmaster-eolien.php

Avec un test sur le contenu du champ antispam.

Totalement efficace.



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

franceradio
WRInaute passionné
WRInaute passionné
 
Messages: 667
Inscription: Jeu Avr 19, 2007 18:27

Message le Ven Juil 25, 2008 16:47

captcha spécial pour les useragent robots ;)


Tu veux voir un sample? dit "vive la Tunisie" avant :D


OTP
Modérateur
Modérateur
 
Messages: 13031
Inscription: Ven Déc 16, 2005 22:41

Message le Ven Juil 25, 2008 17:11

philouseb a écrit:Est ce que te demander les sources est déplacé ??

Merci d'avance


Non, pas de souci, je te prépare ça.


OTP
Modérateur
Modérateur
 
Messages: 13031
Inscription: Ven Déc 16, 2005 22:41

Message le Ven Juil 25, 2008 17:15

Dans le fichier que contient le formulaire :

Code: Tout sélectionner
<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: Tout sélectionner
<?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.
Dernière édition par OTP le Mar Juil 29, 2008 9:30, édité 1 fois.


philouseb
WRInaute passionné
WRInaute passionné
 
Messages: 622
Inscription: Jeu Nov 02, 2006 9:36

Message le Lun Juil 28, 2008 10:21

Merci OTP...

Je vais le mettre en place.


oli004
WRInaute accro
WRInaute accro
 
Messages: 2162
Inscription: Mer Jan 05, 2005 23:53

Message le Lun Juil 28, 2008 15:32

OTP a écrit:Dans le fichier que contient le formulaire :

Code: Tout sélectionner
<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: Tout sélectionner
<?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.


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.


OTP
Modérateur
Modérateur
 
Messages: 13031
Inscription: Ven Déc 16, 2005 22:41

Message le Lun Juil 28, 2008 15:45

En effet, encore plus simple et plus facile pour le visiteur. Je note pour la prochaine version.


TrAsKiN
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 136
Inscription: Lun Juil 17, 2006 19:57

Message le Lun Juil 28, 2008 16:59

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

Empecher le spam de formulaire php ? Empecher le spam de formulaire php ?

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité