Page 1 sur 5
Bloquer spam forum[Résolu]
Publié : 23 déc. 2005, 16:01
par jojaba
Bonjour,
Je sais que je ne devrai pas poser la question ici mais sur les forum de phpBB, mais pour être franc, j'ai plusieurs fois été refroidi par leur réponse du style : pourquoi tu poses cette question, elle a été traitée 36 000 fois ! Difficile de faire des recherches précises sur ce genre de forum il faut bien le dire !
Alors voilà ma question :
Mon forum (cogéré avec Jujuland depuis peu) est victime de spams (ou plutôt d'inscriptions indésirables). Pour l'instant, nous arrivons à contrôler la situation en bannissant au niveau des adresses courriel. Mais à depuis peu, des messages bizarres en anglais sont postés sur nos forums. Je me demandais donc s'il y avait un mod qui permettait de stopper ce spam. Je n'ai rien trouvé sur phpBB mais je sais qu'ici vous évitez le spam en demandant de prévisualiser le sujet avant de le poster (c'est bien ça, n'est-vce pas). Pourrait-on savoir comment procéder pour rendre cette prévisualisation obligatoire (je suppose qu'il faut insérer des lignes de codes dans un fichier php !
Sinon, un autre moyen pour éviter ces inscriptions et ces messages indésirables ?
Merci d'avance et Joyeux Noël à tous !
Publié : 23 déc. 2005, 20:02
par Benoit
Nous avons en effet, et à notre grand dam (car cela complique énormément l'applications des mises à jour de sécurité), modifié le code de phpBB.
J'essaierai de te faire un copier-coller du code qu'on utilise, si jamais tu ne le vois pas arriver avant une semaine n'hésite pas à faire remonter ce sujet

Publié : 24 déc. 2005, 11:45
par jojaba
Merci beaucoup Benoît et bonnes fêtes !
Publié : 29 déc. 2005, 11:42
par jojaba
Rassure-moi Benoît, vous avez aussi des inscriptions indésirables sur votre forum ?
Chez moi ça n'arrête pas !
Publié : 29 déc. 2005, 22:41
par Benoit
Je ne pense pas qu'on surveille les inscriptions, tant qu'ils ne peuvent pas poster ça ne fait pas trop de mal. Je sais que ça fausse sans doute les statistiques mais bon...
Publié : 30 déc. 2005, 05:14
par jojaba
Personnellement,ça me gêne de laisser des inscrits soumettant des sites proposant drogues, sexe et autres ...

Mais il est vrai que vu le nombre d'inscrits sur Geckozone, ce genre d'indésirables doit être noyé dans la masse.

Publié : 30 déc. 2005, 11:32
par calimo
En fait ce sont des robots qui s'inscrivent. Ensuite ils font ce qu'ils veulent. Sauf s'il y a la prévisualisation obligatoire qui les embête
Cela dit Benoit ne semble pas très disposer à te divulguer le code j'ai l'impression

Publié : 30 déc. 2005, 13:19
par Flore
Publié : 30 déc. 2005, 14:04
par bambi
Merci pour ce lien Flore.
On cherche actuellement une solution pour le forum world-informatique.
Je vais de ce pas proposer cette idée

Publié : 30 déc. 2005, 18:08
par calimo
Notons que c'est efficace contre les robots qui s'inscrivent. Mais ici nous avions aussi beaucoup de robots en invités. Et là seule la technique de la prévisualisation est efficace. À voir donc selon le type de spam subi

Publié : 30 déc. 2005, 20:47
par Flore
On peut mettre les 2 ensemble, comme ici

Publié : 31 déc. 2005, 11:21
par jojaba
Effectivement, j'ai eu des inscriptions avec sites web par robots et dans ce cas, si j'ai bien compris, il va falloir modifier le usercp_register.php dans le répertoire /forums/includes/ comme indiqué
ici c'est ça Flore ?
Mais j'ai aussi eu la visite de robots qui laissaient des messages sur le forum en tant qu'invités (j'ai simplement modifié dans mon panneau d'administration les permissions en étant plus restrictif, mais cela au prix d'une moins bonne convivialité, puisque les utilisateurs sont obligés de s'inscrire pour poster).
J'attends ta réponse Flore et je colle ton code pour déjà pallier le problème prioritaire.
Merci beaucoup !
Publié : 31 déc. 2005, 11:43
par jojaba
Je m'excuse, mais je n'ai vraiment aucune notion de php (les boucles if then else, ça me rappelle mon basic mais en php ça a l'air bien plus compliqué) et j'ai peur de faire une erreur. puis-je connaître l'emplacement exact où je devari coller le code que je rappelle ici pour ceux qui, comme moi, sont à la recherche de ce genre de solution :
Code : Tout sélectionner
else if ( $mode == 'register' )
{
if ( empty($username) || empty($new_password) || empty($password_confirm) || empty($email) )
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];
}
if ( !empty($website) )
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . "Spammers are *not* allowed!<br />Afin d'éviter l'inscription de spammers, veuillez ne pas mettre d'adresse web lors de votre inscription. Vous pourrez remplir ce champ plus tard.";
}
}
Tu disais dans le post que :
Il suffit d'ajouter la boucle qui commence par if ( !empty($website) ) après les tests d'adresses e-mails
et HP disait ensuite :
donc après :
Code:
Code : Tout sélectionner
//
// Do a ban check on this email address
//
if ( $email != $userdata['user_email'] || $mode == 'register' )
{
$result = validate_email($email);
if ( $result['error'] )
{
$email = $userdata['user_email'];
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $result['error_msg'];
}
Désolé de t'embêter ainsi

Publié : 31 déc. 2005, 13:17
par jojaba
ça marche impeccablement comme c'est noté ci-dessus ! Si le fichier usercp_register.php n'a pas été modifié avant la manip, la ligne à laquelle il faut ajouter le code est la numéro 381 (sur phpBB 2.0.17)!
Encore un grand merci !

Publié : 31 déc. 2005, 13:25
par calimo
jojaba a écrit :Je m'excuse, mais je n'ai vraiment aucune notion de php (les boucles if then else, ça me rappelle mon basic mais en php ça a l'air bien plus compliqué) et j'ai peur de faire une erreur.
C'est très simple :
Code : Tout sélectionner
if (condition) {
code à exécuter si la condition est remplie;
}
La condition (ou les conditions) est entre parenthèse juste après le if, et le code est contenu entre { et }
Puis tu as else if (condition) {} (ou elseif en un seul mot) et aussi else {} (sans condition celui là). C'est pas très compliqué, sauf quand tu commences à en imbriquer plusieurs (là l'indentation devient vitale)
Pour plus de détails, voir
http://php.net/if 