Forum PHPBB : Cooment filtrer les URLs des webmaster ?

WRInaute discret
Salut à tous !
Etant moi-même administrateur d'un forum PhpBB, j'ai le malheur de me faire spamer à tour des bras par des webmasters venant s'inscrire et rajoutant dans leur profil un site porno.
Ca ne correspond forcément pas du tout à l'éthique de mon site et malgré le fait qu'ils ne postent pas de messages, je voudrais pouvoir filtrer l'url du profil sur certains mots. Quelqu'un peut-il m'aider à ce niveau là ? Existe-t-il un module, une fonction qui s'en occupe ou bien quelles sont en php le code de vérification à ajouter ?

Merci d'avance,
Pierre

P.S. Inutile de dire qu'à chaque fois que je bloque le nom et l'adresse email du membre, il m'en invente une nouvelle. J'ai quasi une inscription par jour de ce genre !
 
WRInaute impliqué
Je pense que tu devrais essayer de bloquer le IP du webmaster plutot que les adresse e-mail et autres...
Je suis nul en PHP, donc peut pas te donner de code, mais j'imagine qu'en effet il doit exister des modules...
 
WRInaute passionné
Je n'utilise pas PhpBB et n'en connais donc pas le code, mais je sais que c'est plutôt le fouillis en général...

L'idée de base, c'est:

1) Trouver la ligne de code qui fait l'insertion des infos dans la BDD lors de l'inscription (sûrement une page register.php ou un truc du style).

2) Repérer dans ce code la variable qui désigne l'url du nouveau membre

3) Quand tu as cette variable, tu fais un test dessus avant la ligne d'insertion. Du style:
Code:
if(strstr($url),"groslolos" ) { $url="http://www.disney.com"; };

Ca c'est si tu te fais ennuyer juste par un type qui met toujours le même site, ou si tu n'as qu'un seul mot à filtrer (ici: groslolos), mais si tu veux en filtrer plkus, le mieux est sans doute de passer par une expression régulière (regex). Mais ce n'est pas ma spécialité, mieux vaut chercher sur un site avec des exemples de regex ou demander l'aide de pros (George Abitbol ?)

aK.
 
WRInaute discret
même probleme, recurrent, vivement une solution simple, je remarque qu'ils mettent tjrs des signes speciaux au debut de leur pseudo, j'ajoute que les solutions prposées ne sont pas applicables, car les spammeurs utilisent tjrs de nouveaux mots
 
Olivier Duffez (admin)
Membre du personnel
c'est sans doute lié au fait que tu as une page listant les membres de ton forum ?
 
WRInaute discret
WebRankInfo a dit:
c'est sans doute lié au fait que tu as une page listant les membres de ton forum ?
C'est exact !
Je vais essayer les solutions de filtrage en modifiant le code mais si ce n'est pas concluant je me résoudrai à enlever cette liste de memebres. Ce serait bien dommage je trouve ... mais bon.

Merci à tous pour vos réponses
Pierre
 
WRInaute discret
textalyser a dit:
je remarque qu'ils mettent tjrs des signes speciaux au debut de leur pseudo,
j'ai vu ça aussi c'est bizarre.

En tous cas il va falloir que j'implémente une solution illico car hier le pollueur s'est déchainé en créant trente membres avec un lien pronographique. Quant internet dérive de cette manière, ça me donne vraiment envie de ne plus m'y intéresser :cry:
 
WRInaute passionné
pipo a dit:
textalyser a dit:
je remarque qu'ils mettent tjrs des signes speciaux au debut de leur pseudo,
j'ai vu ça aussi c'est bizarre.

C'est logique, ils veulent être dans les premiers par ordre alphabétique. Pour ne pas être sur une page qui na pas ou peu de PR.

pipo a dit:
En tous cas il va falloir que j'implémente une solution illico car hier le pollueur s'est déchainé en créant trente membres avec un lien pronographique. Quant internet dérive de cette manière, ça me donne vraiment envie de ne plus m'y intéresser :cry:

Franchement, c'est pas très compliqué à faire. Si tu pars de mes idées citées plus haut, tu peux faire ça en une heure.

aK.
 
WRInaute occasionnel
Une solution pour éviter que des gens s'inscrivent juste pour que leur url soit affichée est de n'afficher l'url de ton visiteur que s'il a déjà écrit quelques messages.

Voici la procédure à suivre sur phpbb 2.0.6 pour que l'adresse du posteur ne s'affiche que s'il a écrit 10 messages :


Etape 1 : la liste des membres :

Dans le fichier memberlist.php, remplacer
Code:
	$www_img = ( $row['user_website'] ) ? '<a href="' . $row['user_website'] . '" target="_userwww"><img src="' . $images['icon_www'] . '" alt="' . $lang['Visit_website'] . '" title="' . $lang['Visit_website'] . '" border="0" /></a>' : '';
	$www = ( $row['user_website'] ) ? '<a href="' . $row['user_website'] . '" target="_userwww">' . $lang['Visit_website'] . '</a>' : '';
par
Code:
	//affiche l'adresse web si le nombre de messages est superieur à 10
	if ( $posts >= 10 || $userdata['user_level'] == ADMIN )
	{
		$www_img = ( $row['user_website'] ) ? '<a href="' . $row['user_website'] . '" target="_userwww"><img src="' . $images['icon_www'] . '" alt="' . $lang['Visit_website'] . '" title="' . $lang['Visit_website'] . '" border="0" /></a>' : '';
		$www = ( $row['user_website'] ) ? '<a href="' . $row['user_website'] . '" target="_userwww">' . $lang['Visit_website'] . '</a>' : '';
	}
	else
	{
		$www_img = 'CAR. D'ESPACEMENT';
		$www = 'CAR. D'ESPACEMENT';
	}

Etape 2 : le profil du visiteur :

Dans le fichier usercp_viewprofile.php ( dans le dossier includes ), remplacer
Code:
$www_img = ( $profiledata['user_website'] ) ? '<a href="' . $profiledata['user_website'] . '" target="_userwww"><img src="' . $images['icon_www'] . '" alt="' . $lang['Visit_website'] . '" title="' . $lang['Visit_website'] . '" border="0" /></a>' : '&';
$www = ( $profiledata['user_website'] ) ? '<a href="' . $profiledata['user_website'] . '" target="_userwww">' . $profiledata['user_website'] . '</a>' : '&';
par
Code:
//affiche l'adresse web si le nombre de messages est superieur à 10
if ( $profiledata['user_posts'] >= 10 || $userdata['user_level'] == ADMIN )
{
	$www_img = ( $profiledata['user_website'] ) ? '<a href="' . $profiledata['user_website'] . '" target="_userwww"><img src="' . $images['icon_www'] . '" alt="' . $lang['Visit_website'] . '" title="' . $lang['Visit_website'] . '" border="0" /></a>' : '&';
	$www = ( $profiledata['user_website'] ) ? '<a href="' . $profiledata['user_website'] . '" target="_userwww">' . $profiledata['user_website'] . '</a>' : '&';
}
else
{
	$www_img = 'CAR. D'ESPACEMENT';
	$www = 'CAR. D'ESPACEMENT';
}

Etape 3 : les messages du forum :

Dans le fichier viewtopic.php, remplacer
Code:
	$www_img = ( $postrow[$i]['user_website'] ) ? '<a href="' . $postrow[$i]['user_website'] . '" target="_userwww"><img src="' . $images['icon_www'] . '" alt="' . $lang['Visit_website'] . '" title="' . $lang['Visit_website'] . '" border="0" /></a>' : '';
	$www = ( $postrow[$i]['user_website'] ) ? '<a href="' . $postrow[$i]['user_website'] . '" target="_userwww">' . $lang['Visit_website'] . '</a>' : '';
par
Code:
//affiche l'adresse web si le nombre de messages est superieur à 10
if ( $postrow[$i]['user_posts'] >= 10 || $userdata['user_level'] == ADMIN )
{
	$www_img = ( $postrow[$i]['user_website'] ) ? '<a href="' . $postrow[$i]['user_website'] . '" target="_userwww"><img src="' . $images['icon_www'] . '" alt="' . $lang['Visit_website'] . '" title="' . $lang['Visit_website'] . '" border="0" /></a>' : '';
	$www = ( $postrow[$i]['user_website'] ) ? '<a href="' . $postrow[$i]['user_website'] . '" target="_userwww">' . $lang['Visit_website'] . '</a>' : '';
}
else
{
	$www_img = '';
	$www = '';
}

C'est terminé

Les utilisateurs ne voient l'adresse du posteur que s'il a envoyé plus de 10 messages. En revanche, l'administrateur voit toujours toutes les adresses

IMPORTANT
Dans le code ci-dessus, je n'ai pas pu faire passer les caractères d'espacement. Il faut donc remplacer les CAR. D'ESPACEMENT que j'ai mis par des & n b s p ; (sans espaces)
 
WRInaute discret
Merci beaucoup Twister ! Je crois que c'est la manière la plus intelligente de décourager les spammeurs. Gracias
 
WRInaute occasionnel
Ohax a dit:
Twister ça marche pour phpbb 2.0.12?

merci à toi ;-)
Je n'ai pas essayé sur 2.0.12,
mais si tu trouves le code à modifier, alors ça marchera. De toutes façons, il n'y a pas de raisons pour que ça ait changé.
Dis-le ici si tu testes :wink:
 
WRInaute impliqué
Il existe plusieurs solutions à ca.

Déjà pour éviter les inscriptions automatiques par des robots, depuis la 2.0.11 il y a d'origine la possibilité d'avoir une image contenant un code de validation.

Pour éviter que des robots spamment directement en fesant des posts dans le forum: n'autoriser que les membres enregistrés à poster.

De plus, ma liste de membres ainsi que le profil des membres ne sont visibles que par les membres enregistrés. Ca évite les robots de spam de passer sur la liste pour récupérer les mails des gens qui autorisent l'affichage de leur adresse. De même ca ne fera pas de backlink pour les moteurs de recherche.

Ajouté à ca le non affichage du site pour les gens qui n'ont pas posté 10 messages, je pense qu'on peut en décourager plus d'un.
De même on peut imaginer d'interdire les URL dans les signatures.
 
Discussions similaires
Haut