Marre des spams dans les formulaires

WRInaute occasionnel
Bonjour,
Depuis environ 3 4 mois j'ai plaçé un formulaire de demande de devis en page d'index.
Cela fait environ 1 mois que nous recevons des spams sur notre adresse email.
C'est à dire que le formulaire nous ai envoyé mais avec des conneries à l'intérieur.

J'avais fait un anti-spam rapidement.

Une image avec un calcul et le résultat du calcul est le nom de l'image.

Ex :

4+1 = 5 (donc image 5.png)
3-2 = 1 (1.png)

Cela a fonctionné 1 semaine mais je m'aperçois que les spams reviennent à nouveaux.

Comment procéder pour vraiment ne plus être embété et que l'utilisateur ne le soit pas également...

Je voudrais un systeme de captcha mais qui ne quitte pas la page car si j'ai une page qui s'affiche en mettant le code est incorrect... et que le client doit resaisir le formulaire ça va pas le faire :cry: ...

Merci d'avance
 
WRInaute occasionnel
Si c'est des robots, ajoute un champ masqué par la css (display none ou visibility hidden) et qui doit rester vide au moment de l'envoi if ($_POST['champvide']!="")die(mysql_error())
 
WRInaute passionné
Je mets des captcha les plus basiques qui soient (en mettant juste une petite ombre sur le texte); et aucun souci..
 
WRInaute occasionnel
oui mais moi oui lol ! j'ai été pepere 1 semaine et op là ça revient donc bon... sinon je ne poserai pas la question ;)
 
WRInaute accro
jiojioforever a dit:
pourquoi pas mettre directement input type="hidden" ? dans le formulaire ?

Ca marche aussi en effet. Un bête input hidden qui doit quoi qu'il se passe rester vide. S'il est rempli, tu es a peu près sur que tu es en train de te faire spammer, donc tu stoppes l'exécution du script comme te le montre benz69fr.
 
WRInaute occasionnel
je vais utiliser ça : on verra <input type='radio' name='radiovide' value='no' style='visibility:hidden;display:none'>
 
WRInaute passionné
jiojioforever a dit:
J'avais fait un anti-spam rapidement.

Une image avec un calcul et le résultat du calcul est le nom de l'image.

Ex :

4+1 = 5 (donc image 5.png)
3-2 = 1 (1.png)

Cela a fonctionné 1 semaine mais je m'aperçois que les spams reviennent à nouveaux.
J'ai été confronté au même problème de spam concernant une sorte de mini-annuaire spécialisé sur un portail que j'ai développé. Je recevais au moins une bonne 50aine de spams par jours si c'est pas plus.

J'ai bricolé aussi un filtre anti-spam se basant aussi sur une opération arithmétique mais en ne passant pas par une image, mais une simple question (écrite en "dur") du genre "combien font 5+5 ?" par exemple et un champ à remplir pour donner la réponse.

Je touche du bois mais depuis, je n'ai plus aucun spam ! :D

:wink:
 
WRInaute passionné
oui

Même solution que Pandore pour mon site twip.org.
Une multiplication facile à deux chiffres à résoudre et générée aléatoirement.
Tout facile à mettre en place (bien plus que les images!!!!! je ne comprend même pas que les images soient encore utilisées), utilisé aussi par wikipédia...
Un grand nombre de visiteurs par jour, + annuaire + 3 blogs etc... -> AUCUN SPAM

CQFD
 
WRInaute occasionnel
ok merci je vais tester cela :) !

et si vraiment je suis encore victime des spams je mettrai en place le bouton radio en hidden.

Je vous tiens au courant ;) !
 
WRInaute occasionnel
voilà c'est installé j'ai fait un random jusqu'à 5 pour les 2 chiffres. Il faut croiser les doigts maintenant hey hey.
 
WRInaute occasionnel
merci bien regarde ma signature j'ai fait le même mais avec une addition et tant que le résultat est faux le formulaire ne passe pas (et l'utilisateur ne perd pas ses infos si il s'est trompé...)

une question si le robot s'acharne sur ce champ est ce que ça pourrait faire ralentir mon site ? question peu être con mais je veux être sûr...
 
WRInaute impliqué
Présenté de cette manière :

Combien font 1 + 3 =

cela reste très simple d'implémenter une fonction capable de répondre à ces questions.

Il est déjà un peu plus fiable de faire comme cela :

Calculez : Trois moins 2 plus 10? (en texte)

mais cela reste encore très simple à passer.

Par contre :

dans le nombre "942087", quel chiffre vient après zéro? (chiffres)

est déjà plus difficile à passer automatiquement.

Après reste les spammeur semi-automatique : souvent sur un site internet, un captcha basé sur les questions est limité à un certain nombre de question, donc au préalable un robot référencie toutes les questions posés dans le captcha du site, puis un être humain répond à toutes les question, et enfin, un autre robot vient spammer à tout va (vu qu'il a les réponses maintenant)
 
WRInaute passionné
Oui DadouDuck mais là c'est suffisant pour stopper le spam. Ceci dit ton exemple est intéressant.

Il y en a d'autres. On peut aussi filtrer avec des mots aussi.

Exemple :
Quelle est la deuxième lettre du mot "webrankinfo" ?

Le tout est de rester dans du simple pour que les gens comprennent bien :wink:
 
WRInaute impliqué
Je disais ça car quand on voit que google peut servir de calculette : https://www.google.fr/search?q=1+%2B+3

L'avantage de mon exemple, c'est que l'on peu demander aussi la réponse en lettre : huit alors qu'avec un texte plus dur.

Mais je peux bien sûr demander d'autres choses basées sur le même principe :

quel est le troisième mot de la phrase suivante : "je hais le spam".

Au jour d'aujourd'hui c'est vrai que c'est amplement suffisant, mais je pense que malheureusement cela ne soit qu'une solution temporaire (il est relativement simple d'écrire des algo qui soient capable de répondre à ces questions, voir même des plus complexes
 
WRInaute occasionnel
DadouDuck a dit:
quel est le troisième mot de la phrase suivante : "je hais le spam".

Trop facile!! La réponse est 'le'. :lol:

Le meilleur système:
CAPTCHA.jpg

.
. :lol:
 
WRInaute impliqué
Outch, ça c'est un captcha qui est plus accessible aux bots (équipé d'OCR, et d'une calculatrice scientifique) qu'aux humains 8O
 
WRInaute occasionnel
erf bon même avec les modifs je suis encore embéter snif !

je vais passer par le 2eme mot dans la phrase...on verra bien

Quelqu'un pourrait me donner sa code histoire de ne pas perdre de temps ?

Merci d'avance
 
WRInaute occasionnel
Comme quelqu'un l'a mentionné plus haut, aucun script mentionné ici va arrêter un spammer malveillant (les robots devraient être filtrés).

C'est le problème que j'ai actuellement sur l'un de mes sites. Un spammer chinois contourne aisément mon captcha-image programmable (il l'a décodé et le ré-utilise comme il veut). Le problème devrait être résolu dans une dizaine de jours...
 
WRInaute occasionnel
jiojioforever a dit:
les captcha-image il faut laisser tombé... c'est dépassé maintenant.
Les captcha mathématiques du type 1 +3 ne valent pas mieux. Les spammers savent compter...

Par contre Dadouduck a proposé une solution du type:
quel est le troisième mot de la phrase suivante : "je hais le spam".
Je serais intéressé par le code mais je doute qu'il existe.
 
WRInaute occasionnel
j'ai juste un idée pour ça avec une explosion de chaine et un nombre de phrases suffisamment conséquent pour faire de l'aléatoire...

Tu fais un certains nombres de phrases de 9 mots dans une base de données, tu en tire une au hasard à chaque fois, tu mets un aléa sur la cardinalité du mot (de 1 à 9), tu récupères la phrase et la cardinalité dans une variable session qui te permettra de savoir quel mot il faut récupérer... surtout tu n'oublies pas de marquer la cardinalité en lettres... sinon je suis assez satisfait du filtre antispam de thunderbird...
 
WRInaute occasionnel
En tout cas si quelqu'un a solution pour arrêter les spammers, je lui suggère de la vendre sur un site web. Il va faire fortune.

Perso, je recherche une solution qui intégre:
1. du HTML (pas de PHP) dans le formulaire pour générer le captcha image ou mathématique..
2. du PHP pour contrôler le captcha-formulaire.
 
WRInaute accro
j'avais des problèmes de spam (pas super important certes mais journaliers) et la simple question de la voiture jaune de oui oui ou du cheval blanc d'Henry IV a tout stoppé.

Maintenant pour ceux qui se demande si ça va pas bloquer certains visiteurs, pensez tout de même que la personne ne pouvant pas répondre a cette question car elle est trop dure pour elle n'a aucun intérêt a remplir un formulaire de simulation de crédit ... (a moins justement que vous cherchiez a perdre de l'argent)
 
WRInaute impliqué
Le principe est simple :

Tu créé une table nommé "captcha" composé des champs suivants :
* id : INT, autoincrement
* question : varchar(255)
* reponse : varchar(255)

Que tu remplis par les questions et réponses que tu désires

exemples :
Question : Un citron est-il jaune ou rouge ?
Réponse : jaune

Question : Quel est le prénom de Walt Disney ? (en minuscule)
Réponse : walt
....

Ensuite dans ton formulaire tu appelles aléatoirement la question, tu intègres la valeur de l'id dans un champs caché "idcaptcha"

Tu récupère la réponse dans un champ "reponse".

Puis à la validation, tu vérifie que la réponse donnée correspond bien à la question posée (grâce au champs "idcaptcha)
 
WRInaute accro
dans ton formulaire de soumission

Code:
Répondez a la question ci dessous pour que votre message ne soit pas traité comme un spam.<br/>
Quelle est la couleur du cheval blanc d'henri IV ? <input type="text" name="code" value="" />

condition de traitement du formulaire (conditionne l'envoie)

Code:
if($_POST['code']=='blanc' || $_POST['code']=='BLANC'){
... ton code lié a l'envoie du mail, le traitement des variabless post ...
}

du béta max applicable en deux secondes. Reste à voir si tes spammeurs sont plus calmes que les miens.

spam.jpg


Petit plus que j'ajoute dans certains formulaires afin de me faire une idée des spammeurs potentiels :

Code:
   <input type='hidden' name='ip' value='<? echo $_SERVER["REMOTE_ADDR"]; ?>' />
   <input type='hidden' name='refer' value='<? echo $_SERVER["HTTP_REFERER"]; ?>' />
   <input type='hidden' name='provider' value='<? echo gethostbyaddr($_SERVER["REMOTE_ADDR"]); ?>' />

une façon comme une autre de savoir qui venant d'où pour éventuellement blacklister ceux qui en fond un peut de trop. (les trois champs sont ajoutés au mail pour information donc traités comme des données du formulaire)
 
WRInaute passionné
DadouDuck a dit:
exemples :
Question : Un citron est-il jaune ou rouge ?
Réponse : jaune

Question : Quel est le prénom de Walt Disney ? (en minuscule)
Réponse : walt
Voilà, ce sont des exemples dans ce gout là qu'il faut. C'est simple et compréhensible de tous. :D
 
WRInaute occasionnel
@ zeb

Merci beaucoup zeb. Ton code fonctionne très bien dans une template smarty-php.

Le vieil adage(?) 'Pourquoi faire simple alors que l'on peut faire compliqué' est donc faux. :D
 
WRInaute occasionnel
Pandore a dit:
DadouDuck a dit:
exemples :
Question : Un citron est-il jaune ou rouge ?
Réponse : jaune

Question : Quel est le prénom de Walt Disney ? (en minuscule)
Réponse : walt
Voilà, ce sont des exemples dans ce gout là qu'il faut. C'est simple et compréhensible de tous. :D
Merci pour les suggestions.
 
WRInaute impliqué
Le problème de ces questions, c'est qu'il en faut en suffisance pour que ce ne soit pas toujours la même.
 
WRInaute occasionnel
DadouDuck a dit:
Le problème de ces questions, c'est qu'il en faut en suffisance pour que ce ne soit pas toujours la même.
C'est vrai pour nos spammeurs francophones.

Mon spammeur malveillant est chinois et change continuellement son IP (IP asiatique). Je doute qu'il maîtrise suffisamment la langue française pour répondre aux questions.
 
WRInaute accro
DadouDuck a dit:
Le problème de ces questions, c'est qu'il en faut en suffisance pour que ce ne soit pas toujours la même.

c'est ce que je me disais au début mais en fait la loi du fénéant a frappé et comme je voulais pas utiliser de base ni faire plus de 4 lignes de code j'ai opté pour l'exemple ci dessus avec une question unique et réponse en dur dans le code.

pas de problèmes depuis 4 mois ...

a suivre...
 
WRInaute passionné
zeb a dit:
c'est ce que je me disais au début mais en fait la loi du fénéant a frappé et comme je voulais pas utiliser de base ni faire plus de 4 lignes de code j'ai opté pour l'exemple ci dessus avec une question unique et réponse en dur dans le code.

pas de problèmes depuis 4 mois ...

a suivre...
Pareil pour moi :D à part que moi c'est pas par feignantise lol J'ai voulu tester dans un premier temps ce que ça avait comme efficacité et quand j'ai vu que plus un seul spam ne passait, j'ai laissé comme ça ^^ :p ça fonctionne pour le moment, donc pourquoi se casser la nénette à faire plus compliquer :wink:
 
WRInaute passionné
DadouDuck a dit:
Certaines appli OCR sont même plus performantes que les humains.

Ici un article avec les taux de réussite d'un système OCR sur les captcha :
http://sam.zoy.org/pwntcha/

Cela s'appelle botter en touche ! :lol:

Personnellement, je n'ai pas l'habitude d'enfiller une armure pour ouvrir des huitres. Les moyens à mettre en oeuvre pour se proteger sont proportionnels à ce que l'on souhaite protéger ainsi qu'aux moyens que deploiera un éventuel malveillant.

Je maintiens qu'un bon captcha est une excellente protection, et que le script que j'utilise est un bon captcha. :wink:

Et puis, une protection anti-spam, c'est comme les célébres bonbons, il y a la deuxième couche, celle que l'on garde pour soit, on parle de sécurité là :mrgreen:
 
WRInaute accro
c'est vrai qu'il y a des bons et des mauvais captcha (l'article est interessant)

Mais pour moi je pense que la protection simpliste et surtout inédite a toutes ses chances.

A mon sens il ne sagit pas de se battre contre les humains, mais contres les bots et il est très peut rentable d'écrire un code dédié pour un site unique.
En revanche, violer un code captcha de forum genre phpbb pour pouvoir spammer des milliers de sites a de l'intérêt (pour le spammeur)

ça rejoins la remarque de fandecine

Personnellement, je n'ai pas l'habitude d'enfiller une armure pour ouvrir des huitres. Les moyen à mettre en oeuvre pour se proteger son proportionnel à ce que l'on souhaite protéger ainsi qu'au moyen que deploiera un éventuel malveillant.
 
WRInaute impliqué
moi non plus j'ai pas l'habitude de sortir l'artillerie lourde, mais quand j'ai eu le site d'un client dont le formulaire de contact à été spammé en masse alors qu'il y avait un captcha image, j'ai du changer pour un système de question simple.

Ce que je dis c'est qu'un bot pouvant casser le captcha image d'un forum phpbb invision ou autre, cassera celui que l'on pourrait mettre sur notre formulaire, cela reste de l'ocr.
 
WRInaute passionné
bon, allons au fond des choses. Je suis un robot équipé d'un super OCR. Je capte le captcha et je l'analyse. J'envoie le resultat, mais atention, je n'ai droit qu'à un essais, si je me trompe, badaboom, je doit analyser un autre captcha car il change à chaque essais et ainsi de suite. :D

Si je suis un robot avec un tant soit peu de cervelle, aprés trois essais, je me barre :mrgreen:

Un OCR avec un taux d'erreur de 0%, il vaut mieux le breveter et le vendre, c'est surement plus rentable que de faire du spam :D :D :D

PS: si tu as un soft OCR sous la main, voici des travaux pratiques :wink:
captcha.jpg
 
WRInaute impliqué
fandecine a dit:
bon, allons au fond des choses. Je suis un robot équipé d'un super OCR. Je capte le captcha et je l'analyse. J'envoie le resultat, mais atention, je n'ai droit qu'à un essais, si je me trompe, badaboom, je doit analyser un autre captcha car il change à chaque essais et ainsi de suite. :D

Et alors ou est ce génant pour un bot?

fandecine a dit:
Si je suis un robot avec un tant soit peu de cervelle, aprés trois essais, je me barre :mrgreen:

Pourquoi? c'est infatiguable un bot, il peut recommencer autant de fois qu'il veux

fandecine a dit:
Si je suis un robot avec un tant soit peu de cervelle, Un OCR avec un taux d'erreur de 0%, il vaut mieux le breveter et le vendre, c'est surement plus rentable que de faire du spam :D :D :D

Il n'a pas besoin d'avoir un taux d'erreur de 0%, mais un taux de réussite qui dépasse les 80% c'est déjà très rentable pour un spammeur

fandecine a dit:
PS: si tu as un soft OCR sous la main, voici des travaux pratiques :wink:
captcha.jpg

Je n'en ai pas sous la main, mais tu remarqueras qu'il est proche de quelques uns de http://sam.zoy.org/pwntcha/ et qui affiche un % de réussite de 99%



Maintenant, faut arriver aussi à lire entre les lignes, et comprendre aussi ce que j'explique :

Les logiciels OCR existent, et ces dernières années ils ont été portés sur le web et j'ai un client qui en a été victime le mois dernier sur un captcha image comme la tienne, et je sais que c'est pas un humain, mais 20 messages de spam en moins d'une minute je ne vois pas ce que cela peut être d'autre.

De plus ces logiciels OCR deviennent de plus en plus performants ce qui fait que les captcha qui leur sont difficiles à casser le sont aussi pour les humain. A plus ou moins court terme, il faudra trouver une autre solution.
 
WRInaute passionné
DadouDuck a dit:
fandecine a dit:
bon, allons au fond des choses. Je suis un robot équipé d'un super OCR. Je capte le captcha et je l'analyse. J'envoie le resultat, mais atention, je n'ai droit qu'à un essais, si je me trompe, badaboom, je doit analyser un autre captcha car il change à chaque essais et ainsi de suite. :D

Et alors ou est ce génant pour un bot?

Ben, moi, lorsque j'ai un gugus qui essaye plus de trois fois de suite de remplir le même formulaire (ou de s'indentifier ce qui est le même problème) je le considère comme un intrus et je lui bloque l'accés. :D

DadouDuck a dit:
fandecine a dit:
Si je suis un robot avec un tant soit peu de cervelle, aprés trois essais, je me barre :mrgreen:

Pourquoi? c'est infatiguable un bot, il peut recommencer autant de fois qu'il veux

Certes, Infatiguable il est mais discret aussi il doit être. :wink: Le meilleur moyen de se faire repérer c'est de s'obstiner sur un formulaire en particulier.

Quand à mon captcha il est effectivement proche de la liste que tu donne mais plutôt du bas de la liste, celle des captcha non perforés :lol: :lol: :lol:

Au fait, tu l'as forcé mon captcha ? :wink:
 
WRInaute impliqué
fandecine a dit:
Ben, moi, lorsque j'ai un gugus qui essaye plus de trois fois de suite de remplir le même formulaire (ou de s'indentifier ce qui est le même problème) je le considère comme un intrus et je lui bloque l'accés. :D

Bien sympa pour le visiteur, je me suis plusieurs fois cassé les dents sur un captcha que j'ai du recommencer plus de 3 fois.


fandecine a dit:
Quand à mon captcha il est effectivement proche de la liste que tu donne mais plutôt du bas de la liste, celle des captcha non perforés :lol: :lol: :lol:

Euh; désolé de te contredire, il se rapproche plus de la liste des perforés
 
WRInaute occasionnel
bon juste pour vous dire que le systeme avec un random sur les mots puis un random "quel est la lettre X du mot'... n'est pas efficasse non plus sur mon site

(voir WWW tout en bas de la page pour valider)
 
WRInaute passionné
C'est bizarre quand même cette histoire, les bots apprenent vite certe, mais à ce point... Et-tu sûr qu'il n'y a pas des "humains" derrière ca (parait qu'il y en as dans les pays en voie de développement qui sont payé à faire ca) ? T'a relevé les adresses IP ?
 
WRInaute impliqué
UsagiYojimbo a dit:
Et la bidouille avec un champ hidden, tu as essayé ?

La bidouille avec un champs caché est à éviter : un champs de formulaire type hidden n'est pas modifiable par défaut, reste à le caché par CSS avec "display : none;" MAIS les navigateurs comme Lynx ne gèrent pas cette propriété (qui d'ailleurs n'a aucun intérêt pour eux), bilan des courses, un non-voyant se retrouve dans l'impossibilité de remplir correctement le formulaire vu qu'il "voit" le champs caché et qu'il va être amené à le remplir.
 
WRInaute impliqué
BadProcESs a dit:
C'est bizarre quand même cette histoire, les bots apprenent vite certe, mais à ce point... Et-tu sûr qu'il n'y a pas des "humains" derrière ca (parait qu'il y en as dans les pays en voie de développement qui sont payé à faire ca) ? T'a relevé les adresses IP ?

Il y a maintenant le spam semi-automatique : sur un site internet, il y a un humain qui met dans une bdd toutes les questions qui sont généré par le site (ainsi que toutes les réponses) ensuite, il passe la main à un bot (qui du coup maintenant connais toutes les réponses et peut spammer à tous va le site.

jiojioforever a dit:
bon juste pour vous dire que le systeme avec un random sur les mots puis un random "quel est la lettre X du mot'... n'est pas efficasse non plus sur mon site

La question reste simple à décortiquer par un bot, il est préférable d'utiliser des questions comme : "Quelle est la couleur d'un citron" (mais avec les limitations ci-dessus)
 
WRInaute impliqué
Tout dépend de ce que tu as mis comme champs caché, mais si tu met un champs caché sans intitulé, il est fort à parier que le bot ne le remplira pas non plus
 
WRInaute accro
DadouDuck a dit:
Tout dépend de ce que tu as mis comme champs caché, mais si tu met un champs caché sans intitulé, il est fort à parier que le bot ne le remplira pas non plus

"répétez votre mail si vous n'avez pas de cervelle" :)
 
WRInaute impliqué
:lol: Alors soit le bot est totalement con et il mettra n'importe quoi, soit il ne répondra pas.

Le mieux : ajouter en plus l' * en indiquant dans l'intitulé que ce n'est pas obligatoire ;)
 
WRInaute impliqué
Je me met à la place du dev du bot :
* un champs de formulaire sans * : je ne le rempli pas sauf s'il s'appelle "commentaire", "message", ... ou tout autre nom ayant un rapport avec
* Par contre, si l'intitulé du champ à une * le remplir obligatoirement

Tu vois le truc : d'un coté : les bots qui vont avoir tendance à remplir uniquement les champs intitulés d'une *, et de l'autre et les non-voyants qui vont voir le * et qui vont avoir tendance à le remplir. Par contre

faire ceci (ou tout autre test similaire)

Code:
<label for="coucouespercedesagouinsdebot">Champ pour les sagouins de bots surtout ne pas donner d'informations dans ce champs *</label><input type="text" style="display:hidden;" />

devrait énormément limiter la casse pour un bon moment
 
Discussions similaires
Haut