
Depuis quelques mois déjà, une bien dérangeante réalité s’était fait sentir sur plusieurs de mes forums phpBB. Les webmasters gérant ce type de forum doivent assurément savoir de quoi je parle… Le phpBB-Spam! Ces p’tits maudits robots qui se crée des compte à tous les jours sur mes forums et qui lancent de la publicité à gauche et à droite en se faisant croire que je ne les supprimerai pas…
J’ai essayer d’installer quelques plugins. Même Bad-Behavior pour phpBB n’a pas fonctionné.. Comme je n’ai pas réussi à éradiquer le problème avec les solutions existantes alors j’ai decidé de programmer ma propre solution à ce problème.
Voici la procédure à suivre :
1) Modifier le fichier includes/usercp_register.php
Vers la ligne 271, vous devriez voir un bout de code ressemblant à ceci.
else if ( $mode == 'register' )
{
Maintenant, il suffit d’ajouter ce bout de code en dessous du {
// Vérification de faux navigateurs.
if ($mode == 'register' && $_GET['jcheck'] != 'mspam') {
message_die(GENERAL_MESSAGE, 'Votre navigateur a été détecter comme spam. Veuillez contacter l\'administrateur du forum s\'il s\'agit d\'un erreur.', '', __LINE__, __FILE__);
}
2) Ajouter une fonction javascript à votre modèle de page
Il vous faut maintenant inclure un petit bout de code JavaScript que les robots ne sauront comprendre.
Ouvrez le fichier templates/nom_du_template/overall_header.tpl et ajouter cette fonction JavaScript à l’intérieur des balises <head> [ … ] </head>
<script language="javascript">
function testDetect() {
window.document.getElementById(’myformregister’).action = ‘profile.php?jcheck=mspam’;
}
</script>
3) Modifier maintenant le code HTML de votre page profil
Ouvrez le fichier templates/nom_du_template/profile_add_body.php
Effectuer une recherche pour vous retrouvez vers cette ligne :
<form action="{S_PROFILE_ACTION}" {S_FORM_ENCTYPE}
Remplacez le code HTML de la balise <form> par celui-ci.
<form action="{S_PROFILE_ACTION}" {S_FORM_ENCTYPE} name="myformregister" id="myformregister" method="post" name="profile">
Dernière étape :
Effectuer une recherche pour vous retrouvez vers cette ligne :
<input type="submit" name="submit"
Remplacez le code HTML du bouton «submit» par celui-ci :
<input type="submit" name="submit" value="{L_SUBMIT}" class="liteoption" onclick="testDetect();" />
Vous ne devriez plus être ennuyé par le spam sur phpBB!
- Matt
38 Responses
Frank
23|oct|2006 1ca semble fonctionner très bien sur mon forum ;0)
Merci Matt
Webmaster du Québec » Trucs et Astuces » Activer la notification des réponses par défault
20|nov|2006 2[…] « Solution maison contre le spam phpBB […]
boiss
27|nov|2006 3De loin la solution la plus simple et efficace contre les maudit robots qui spam les système PHPBB!
Bravo Matt!
Continue comme ca !
Webmaster du Québec » Trucs et Astuces » phpBB publique et sans spam
16|déc|2006 4[…] Suite à mon billet sur ma solution maison contre le spam phpBB, j’ai eu certains commentaires de mes confrères Webmaster comme quoi que la solution ne pouvait pas s’appliquer à leur forum car il acceptait les commentaires «Invité» sur son forum… […]
SkyPat
16|jan|2007 5Help Help ca marche pas sur mon forum, il bloque chaque inscription et de plus je ne trouve pas le fichier overall_header.php mais overall_header.tpl et à quelle endroit du fichier on doit coller :
function testDetect() {
window.document.getElementById(’myformregister’).action = ‘profile.php?jcheck=mspam’;
}
Merci merci de m’aider
Matt
16|jan|2007 6Salut Skypat,
Je m’excuse c’est en effet overall_header.tpl et non pas .php, j’ai effectué la correction de l’article.
Tu dois inclure le code de la function en dedans des balises head et script dans overall_header.tpl
<head>
<script language="javascript">
function testDetect() {
window.document.getElementById('myformregister').action = 'profile.php?jcheck=mspam';
}
</script>
</head>
Je suis aller voir ton site, et je crois que c’est tout ce qui manque… essaie ça et ça devrait fonctionner!
Merci
- Matt
SkyPat
16|jan|2007 7Ben snif snif j’ai toujour le message : Votre navigateur a été détecter comme spam
Matt
16|jan|2007 8Je suis retourner sur ton site. La function javascript testDetect() n’est toujours pas inclus dans le code de ton site.
1) Tu as probablement deux fichiers overall_header.tpl, un pour le thème par default de phpBB et l’autre pour ton thème actuelle. Assure-toi que tu as mis le code dans le bon.
Cette fonction toute simple est le coeur de la patch…
SkyPat
16|jan|2007 9Merci Merci ca marche je ne l’avais pas mis au bon endroit
Merci pour la rapidité et encore Bravo pour ce patch
André de France
19|jan|2007 10Mille fois merci pour ce petit script qui fonctionne a merveille, depuis son installation pas un seul spam, simple a installer en plus, bravo et félicitation
Marie
04|fév|2007 11Bonjour …. simple petite question est-ce que ce bout de code peut effectivement mettre fin à tous robots comme par exemple le robot de google car ce n’est pas l’effet souhaité.
Merci !!! de me renseigner
Matt
04|fév|2007 12Non. Ça va seulement éloigner les méchants robots qui remplissent des formulaires. L’accès au page et à l’indexation n’a pas du tout été touché.
Bref, ça bloque seulement les mauvais robots. Et très efficacement
Marie
05|fév|2007 13Merci de cette réponse aussi rapide
Benoit
06|fév|2007 14Vraiment bon comme “mod” maison!!!
comment il fonctionne? car on sait déjà que les robots s’enrigistre via des scripts mais une suggestion…. modifier le bouton envoyer avec son url vers un site bidon et mettre un autre bouton cliquable avec la fonction envoyer si vous etre un humain!!!!!!!!
Merci de votre temps d’Avoir fait ce script!
Matt
07|fév|2007 15Benoit:
Ma patch utilise le Javascript pour berner des robots… Lorsque tu cliques sur le bouton enregistré, j’ajoute une variable au formulaire d’enregistrement…
Et si je ne vois pas cette variable dans le script de la librarie usercp_register.php et bien j’en déduis qu’il s’agit d’un spam.
Donc, si ton navigateur supporte pas le JavaScript tu seras considéré comme un robot.. mais vraiment? Qui a pas javascript appart les robots?
:)
Jérôme
10|fév|2007 16Bonjour
Moi aussi, il me détecte comme spam si je désire m’inscrire. J’ai surement commis une erreur. Peut-être est-ce à cause du portail?
Pourriez-vous m’aider.
En tous les cas merci pour ce service.
Jérôme
Matt
10|fév|2007 17Salut Jérôme,
Je suis aller faire un petit tour sur ton forum et je n’y ai pas trouvé aucune des petites sections de code qui permettrait à la patch de fonctionné..
Suit les instructions comme il faut, ça va fonctionner… et te permettre d’enlever le «Captcha» qui a mon avis est la pire invention de tous.
Il y a d’autre façon de valider la présence d’un vrai utilisateur devant l’écran et cette patch le prouve..
Revient-moi la dessus si tu veux un coup de pouce.
- Matt
Psychochu
26|fév|2007 18Merci pour cette formidable soluce , ma vie est sauvée du spam!Du coup je fais de la pub pour toi
Zandes
11|mar|2007 19Bonjour,
J’ai essayé votre technique pour éliminer les spams qui sont de plus en plus envahissant sur mon forum. Malheureusement, si je veux m’inscrire (test), mais j’ai un message m’indiquant que je suis un robot.
Note: J’ai essayé avec Explorer 7.0 et Firefox 2.0.0.2
Matt
11|mar|2007 20Bonjour Zandes,
Présentement, c’est dure à dire ce qui n’a pas fonctionné. Je suis aller sur votre forum au http://mick.goldzoneweb.info/forum/ et je n’ai pas vu la partie HTML du code de la patch.
Vous devez absolument inclure dans votre header <head></head>
function testDetect() { [ …. ] }
et le bout de code suivant sur le bouton de la page templates/nom_du_template/profile_add_body.php de VOTRE template.
onclick=”testDetect();”
Si tu as d’autres questions plus précises, je suis là pour ça.
- Matt
Zandes
12|mar|2007 21Bonjour, je ne comprend pas pourquoi vous n’avez pas été capable de voir la partie HTML. Je suis allé voir et je l’ai moi-même trouvé.
Je l’ai ajouté à la ligne 220, entre la balise de script et du HEAD, juste après la condition :
if ( {PRIVATE_MESSAGE_NEW_FLAG} )
{
window.open(’{U_PRIVATEMSGS_POPUP}’, ‘_phpbbprivmsg’, ‘HEIGHT=225,resizable=yes,WIDTH=400′);;
}.
Pour le , je l’ai aussi trouvé.
Je l’ai ajouté à la ligne 270-271, juste après le {S_HIDDEN_FIELDS}
Zandes
12|mar|2007 22Pour le input type=”submit” name=”submit” value=”{L_SUBMIT}” class=”liteoption” onclick=”testDetect();” /
Il y a les 2 balises ouvrante et fermante, mais je ne peux pas les mettre dans le commentaire parce qu’elles ne sont pas affichées.
Merci.
Matt
12|mar|2007 23Je ne vois pas la fonction testDetect() { } lorsque je fais «View Source»
Il faut que tu l’enlèves de if ( {PRIVATE_MESSAGE_NEW_FLAG} )
…
- Matt
Lolo
08|avr|2007 24Ben .. moi aussi je bloque au niveau du message :
Votre navigateur a été détecter comme spam. Veuillez contacter l’administrateur du forum s’il s’agit d’un erreur.
J’ai beau refaire le tour j’ai bien mis dans le script la fonction.. mais tjs le meme probleme ..pour l’enregistrmeent d’un user..
Help please ..
Matt
08|avr|2007 25Salut Lolo,
L’étape #2 n’a pas été effectué… Refait cette étape et tout devra fontionner.
Lolo
09|avr|2007 26Ca marche j’ai trouvé ..
J’ai supprimé la premier fonction du if juste avant
et remis ton applet java script etape 2# en ajoputant le / a pour la fin .. je n’avais pas vu l’oubli en faisant le copier coller .. ca a l’air de fontionné .. merci pour cette manip anti spam
007
19|avr|2007 27J’ai un souci, à chaque poste il me prend pour un spammer, j’ai lu les commentaires mais ne trouve pas de réponses.
alpha
20|avr|2007 28Bonjour
Mon petit forum traitant de vidéo, j’ai entre 10 et 15 spams de robot par jour.
Et certains de sites porno ce qui pose problème.
J’ai essayé d’appliquer plusieur méthodes préconisées sur les forums phpBB, mais n’étant pas webmaster et malgré les bons tutotriaux elles sont complexes à mettre en place.
Il me semble que votre solution est à ma portée, malheureusement je ne trouve pas les lignes auxquelles vous faites références en face des numéros j’ai d”autres instructions.
Voici le lien pour info de mon très petit forum.
http://www.camephotoscope.org.preview.lost-oasis.net/forum/
merci
alpha
stoufa
24|avr|2007 29Bonjour,
J’ai fait les modification des fichiers de mon forum phpbb en localhost et j’ai une errure générale
Failed sending email :: PHP ::
DEBUG MODE
Line : 234
File : emailer.php
stoufa
24|avr|2007 30J’ai appuyer sur valider sans faire attention.
Au fait malgré l’érreure l’enregistrement est fait correctement merci de votre aide.
Hello
26|avr|2007 31Hello, dans le code javascript que tu mets en patch, tu as oublié la slash
Duc coup, j’ai cherhcé pendant une heure d’ou venait l’incompatibilité avec IE!
Sinon, super ton patch!
alpha
29|avr|2007 32Bonjour
Ce matin j’ai eu 15 robots déjà. C’est fatigant. (surtout que c’est vraiment des bétises car toutes leur adresse web arrivent sur page erreur 404)
Je n’arrive pas à faire fonctionner la procédure explicitée ici et rencontre les problèmes exposés ci dessus.
j’ai mis en téléchargement les fichiers modifiés.
Ou est l’erreur?
merci
NightAngel
02|mai|2007 33Salut Matt,
Au niveau de la modification dans overall_header.tpl..
A la fin tu as utilisé une balise ouvrante de script et non une balise fermante /script
Ciao.
ratibus
04|mai|2007 34Salut
Juste un conseil : au lieu de faire l’appel à la fonction JS sur le onclick du bouton submit, fais-le plutot dans le onsubmit du formulaire
Ca permet de valider le formulaire correctement par une saisie au clavier (sinon la validation par la touche entrée ne marchera pas).
Autre suggestion : au lieu d’ajouter le champ jcheck en jouant sur le action (du coup ça fait mélanger des variables en GET et en POST), ajoute un champ hidden dans ton template et met ceci pour ta fonction JS :
function testDetect() {
this.elements[’jcheck’].value = ‘mspam’;
}
Bonne continuation
mmo
13|juin|2007 35attention au copier coller du code qui format mal les ‘
function testDetect() {
window.document.getElementById(’myformregister’).action = ‘profile.php?jcheck=mspam’;
mettre :
function testDetect() {
window.document.getElementById(’myformregister’).action = ‘profile.php?jcheck=mspam’;
galère pendant une heure.
mmo
13|juin|2007 36a ben le post a transformer met ‘ ?
Shiva
03|mar|2008 37Bonjour,
J’ai également un forum très touché par les spams j’ai donc essayé ce code très intéressant mais en voulant m’inscrire, j’ai un message d’erreur!
Je crois avoir fait les bonne manips, mais pouvez vous m’aidez SVP?
Merci beaucoup!
http://kamiloka.free.fr
spycrasher
24|mar|2008 38Hi folks
Just trapped on a little tool to slice website images.
Quick in preparing ready html from simple single-image site design.
Program is rather crappy and cheap (especially comparing to similar function in PhotoShop).
But! Just look what books come as a bonus:
Search Engine Optimization: An Hour a Day
Web Design in a Nutshell, 3rd Edition
Webmaster in a Nutshell, 3rd Edition
etc…
I wonder how $270 priced books can be sold for just 20 dollars…
Anyway here’s link: http://www.sliceimage.com/
Hope these books will help you as well.
PS: Don’t forget to click on the links in my signature in reward
Regards,
Mark
Leave a reply
Search
Catégories
Archives
Liens
Copyright © 2007 - Webmaster Québec - Le réseau Peaudecastor
Créer un blogue Hébergement Web Québec Recettes québécoises