|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() |
Bonjour.
J'utilise un script php/mysql pour un livre d'or. Il fonctionne très bien, si ce n'est que je suis horripilé par les spams ! Comme je suppose que les malfaisants ne s'amusent pas à remplir à chaque fois les champs des messages (que j'efface au fur et à mesure), il doivent utiliser un "logiciel" (dont j'ignore le nom et comment il fonctionne) pour poster leur saloperie à intervalles réguliers, un peu comme les spameurs de forums phpbb. Sur ces forums, il existe un dispositif qui consiste à recopier obligatoirement des caractères pas très lisibles sur une image aléatoire avant de s'inscrire. Y a-t-il un moyen d'adapter ça sur un livre d'or, ou sinon, que me proposez-vous d'autre ? Merci. |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() |
Tu trouveras des infos sur le CAPTCHA
__________________
Le . est la base de toute bonne concaténation, marre de voir des echo "Mavar1 = $toto et Mavar2 = $titi"; ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi; pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi; |
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Inscription : novembre 2004 Messages : 441 ![]() |
ou sinon tu poses une question/devinette avant l'insertion sur ton livre d'or
du genre: couleur du poisson rouge? et tu compares avec ta réponse si ok alors inertion si not ok alors pas d'insertion |
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : août 2006 Messages : 1 207 ![]() |
Pour avoir eu exactement le même problème, ce que j'ai fait, c'est générer un ptit mot de passe à chaque affichage de page, que je passe en input hidden.
J'ai également un champ "validation" ou le gars qui veut laisser un message doit recopier le mot de passe. Au moment de l'insertion dans le livre, je compare l'input hidden et le champ "validation", et si c'est pas les même, j'affiche un ptit message "le spam c'est mal !". C'est pas bien compliqué, et depuis, je n'ai plus de message de spam ^_^ -- Rakken |
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Développeur Web Inscription : septembre 2006 Messages : 215 ![]() |
Je rejoins l'idee de mussara
tu poses un calcule simple, du style combien font deux plus un ? ca t'evite de te casser la tete avec la generation d'image. |
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() |
Rakken
Ca a l'air bien ton truc ! Mais j'espère que c'est pas du JavaScript, parce qu'il suffit de désactiver l'option pour passer outre. J'ai déjà ce problème en obligeant les signataires à remplir au moins les champs "pseudo" et "message" et je me retrouve de temps en temps avec des commentaires vides... |
|
|
00
|
|
|
#7 | ||
![]() ![]() Inscription : août 2006 Messages : 1 207 ![]() |
Allez, j'suis de bonne humeur aujourd'hui ;-))
Code :
C'est un peu plus chiant a passer pour un robot automatique de spam qu'un champ supplémentaire qui doit avoir une valeur précise mais si quelqu'un veut vraiment te spammer toi, c'est pas ce code là qui va le retenir très longtemps. Si les spams continuent, ll faudra remplacer par des images générée comme le suggerait guitou, mais bon, faudrait vraiment que le spammeur t'en veuille. Voila, amuse toi bien ;-) -- Rakken ps : J'ai taillé dans mon code pour ne te donner que les parties interessantes pour toi, je n'ai pas tester plus que ca, tu devras peut-être adapter un peu ^^ |
||
|
00
|
|
|
#8 | ||
|
Nouveau Membre du Club
![]() |
Je te remercie, mais je dois avoir merdé quelque part car ça ne fonctionne pas (bien que je n'ai aucun message d'erreur).
Voici ma page complète (épurée des tableaux) ; pendant que je bidouille, si tu as le temps d'y jeter un oeil et de trouver l'erreur. Ca doit venir du onSubmitdu formulaire, mais je ne sais pas comment faire. Code :
Code :
<? /* (...) Affichage du formulaire pour le livre d'or */ ?> Code :
<? /* (...) Affichage du livre d'or */ ?> |
||
|
|
00
|
|
|
#9 | ||||
|
Débutant
Samuel M. K. FOLI-AWLIInscription : avril 2003 Messages : 50 ![]() |
Salut
1- Avant la ligne 21 il faut récupérer la valeur test transmis par GET : Code :
Code :
|
||||
|
00
|
|
|
#10 |
![]() ![]() Inscription : août 2006 Messages : 1 207 ![]() |
Fovi72 a tout dis, j'crois bien que je n'ai rien a rajouter ^_^
-- Rakken |
|
00
|
|
|
#11 |
|
Nouveau Membre du Club
![]() |
Merci pour ces précisions ! Malheureusement, je ne peux pas voir si ça fonctionne ; hébergé chez Free, ce matin, je n'arrive pas à me connecter au FTP.
Néanmoins, je reste perplexe quant aux deux lignes. Je m'explique... Mon livre d'or est en deux parties : - page_livre.php : où figurent les messages. - page_livre_form.php : le formulaire de saisie. A partir du site, quand on clique sur le lien du livre, on arrive sur page_livre.php. Un clic sur Signer le livre d'or et on est redirigé vers le formulaire. Après avoir saisi le message et validé, la redirection s'effectue sur une page "épurée" qui indique que le message a été enregistré. Un clic sur Lire les messages et on se retrouve sur le livre proprement dit, où l'on peut lire le message que l'on vient d'écrire. Voilà pourquoi je doute de l'utilité de ces deux lignes... Je précise que ce n'est pas moi qui ai conçu ce livre (je ne suis pas assez calé pour ça !), je me suis contenté de le récupérer, de l'enrichir et de l'adapter. Autre problème : le code JavaScript inopérant si le visiteur n'a pas activé l'option dans son navigateur. Je me retrouve avec pas mal de messages vides. Ce qui fait que j'aimerais bien supprimer le code correspondant, mais ça déconne dans l'enregistrement des messages : sans ce code, ils sont enregistrés deux fois ! Donc, si il y a moyen d'insérer un code en PHP tel l'anti-spam, je suis preneur. Dans l'idéal, pour qu'un message soit enregistré, il faut qu'il y ait au moins un nom de saisi, un message et la recopie exacte des caractères aléatoires générés. Pas facile pour moi... Je mettrai un lien direct dès que le serveur répondra pour que vous y voyiez plus clair. Merci encore... |
|
|
00
|
|
|
#12 |
![]() ![]() Inscription : août 2006 Messages : 1 207 ![]() |
Dans mon livre d'or, j'avais mon formulaire pour enregistrer les messages sur la même page que l'affichage des des messages. (Bref, un seul fichier pour mon livre d'or).
Les deux lignes de commentaire correspondent à l'endroit ou initialement j'avais mon code pour afficher le formulaire de saisie et l'affichage de mes messages. Ces lignes n'étaient là qu'a titre informatif, et dans la mesure ou c'est des commentaires, elle n'ont évidement aucune influence sur le code en lui même, bref, tu peux allègrement les supprimer. Maintenant, si tu veux être sur qu'il y ait un message, tu peux modifier la ligne : Code :
if ($spam_field == $spam_field_protect) Code :
if ($spam_field == $spam_field_protect && !empty($messageID) && !empty($expediteurID)) -- Rakken |
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() ![]() Inscription : avril 2002 Messages : 3 339 ![]() |
Pour faire beaucoup plus simple.....
Etant donné que les robots sont programmés pour attaquer un type de livre d'or bien précis, si tu renomme la pages qui permet de saisir un message (genre new_message.php en new_message_secure.php) et que tu change les références à cette page dans tout les autres scripts, les robots auront des erreurs 404 et les "programmeurs" ne risque pas de changer leur robots pour 1 seul site. C'est ce que nous avions fait sur le phpBB developpez.com à l'époque et ça avait reglé le problème. |
|
|
00
|
|
|
#14 | ||||
|
Nouveau Membre du Club
![]() |
Eh bien ça ne fonctionne pas !
![]() Peut-être Rakken pourrais-tu me proposer le code de ton livre, en une seule page ? En attendant, voici les miens : page_livre.php Code :
Code :
|
||||
|
|
00
|
|
|
#15 |
|
Membre confirmé
![]() Inscription : novembre 2004 Messages : 441 ![]() |
pourquoi ne recherches tu pas la facilité, comme te l'ont dit plusieurs personnes sur ce post?
et la dernière solution de Gaël Donat te résoud tout tes pbs en un seul coup et tu n'as même pas besoin de changer quoi que ce soit dans tes pages (sauf les noms de fichiers modifiés bien entendu). ou alors j'en reviens à mon test sur une question avec réponse demandée qui t'aiguille soit vers l'envoi du post soit vers un message comme quoi interdit aux spammeurs |
|
|
00
|
|
|
#16 |
|
Nouveau Membre du Club
![]() |
Mussara
Je n'ai aucune idée des moyens employés par les spammers pour envoyer leur merde. Mais je gage que si je renomme mes pages, il ne se passera pas bien longtemps avant qu'elles ne soient spammées à nouveau, non ? |
|
|
00
|
|
|
#17 |
|
Membre confirmé
![]() Inscription : novembre 2004 Messages : 441 ![]() |
a ton avis comment fait un robot pour spammer un livre d'or ou un forum?
il ne va pas aller spammer le forum qui aura été écrit à la mimine, il spamme les forums qui ont pignon sur rue au niveau développements: PHPBB et autres et comme le code est connu de tous (puisqu'on est dans le domaine du GNU), il est "facile" d'écrire une procédure qui va aller mettre des messages intempestifs... ne crois pas qu'il y a quelqu'un qui physiquement va aller sur ton livre d'or, trouver ta page pour écrire un message, cliquer à tel et tel endroit pour envoyer le message. c'est une proécdure automatique qui s'affranchit de tout cela, le spammer ne va pa aller sur ta page "en vrai"... du coup ce que t'as proposé Gaël Donat est une excellente solution, car le spam envoyé n'aboutira nulle part vu que tu auras renommé tes pages... du coup le robot sera perdu... |
|
|
00
|
|
|
#18 |
|
Nouveau Membre du Club
![]() |
Ca, je me doute bien que ce n'est pas un type qui passe son temps à naviguer entre les sites et qui poste ses messages à la main. Mais étant novice, je n'ai aucune idée de la technique employée pour automatiser la procédure : est-ce un logiciel, un code maison ? Bref, je vais renommer mes pages et on verra bien...
Mais il y a quand même un autre problème qui n'a rien à voir avec le spam : le code JavaScript caduque si l'on désactive l'option dans le navigateur et qui n'empêche pas l'enregistrement de messages vides. Où puis-je en trouver un en PHP ? Parce que sur ce forum, j'ai déjà posé la question, je n'ai jamais eu de réponse... |
|
|
00
|
|
|
#19 |
|
Membre confirmé
![]() Inscription : novembre 2004 Messages : 441 ![]() |
en php
si la réponse est égale à "" (rien) alors le message n'est pas mis en ligne |
|
|
00
|
|
|
#20 |
|
Nouveau Membre du Club
![]() |
Bon, j'ai renommé les pages du livre d'or et ça fait trois jours que je n'ai plus le moindre SPAM.
Par contre, pour le code PHP qui interdit l'enregistrement des messages vides, je ne sais pas comment faire... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com