1. Introduction

Ça y est, c'est fait, vous voilà possesseur d'un site WWW et sur ce site, vous hébergez un forum afin de pouvoir partager et échanger au sujet de votre passion avec les différents internautes.

Et là, grosse déconvenue, les premiers internautes que vous voyez débarquer sur votre forum sont les spammers qui veulent profiter de votre hébergement et de votre vitrine pour faire de la publicité sur certaines pilules bleues aux pouvoirs ahurissants ou encore la dernière vidéo nue d'une actrice à la mode.

Bien sûr, vous ne voulez pas de cela sur votre forum et vous les chassez donc mais ils reviennent. Vous persévérez dans votre traque aux indélicats qui salissent votre forum et au bout d'un certain temps, vous vous rendez compte que vous passez plus de temps à chasser ces intrus qu'à vous occuper de votre forum préféré. C'est le signe que la méthode que vous employez n'est pas la bonne et qu'il est temps de changer de stratégie.

Ce tutoriel ne parle que des forums phpBB3 bien qu'il en existe d'autres. Certaines méthodes décrites dans ce tutoriel sont utilisables sur d'autres types de forums mais peuvent dépendre des capacités techniques du moteur de votre forum. Ce tutoriel présente aussi les différentes méthodes techniques que vous pouvez mettre en place sur un forum phpBB3 pour contrer ces spammers (ou au moins, leur rendre la vie plus difficile).

Dans ce tutoriel, les aspects suivants sont abordés :

  • la réglementation qui s'applique aux forums est présentée dans le chapitre 2 ;
  • la description de la stratégie que vous voulez appliquer aux spammer au chapitre 3 ;
  • la configuration d'un forum phpBB3 et le rôle de chacun des paramètres sont présentés dans le chapitre 4 ;
  • le chapitre 5 décrit, à titre d'exemple, les valeurs de ces paramètres appliquées sur mon forum ;
  • le chapitre 6 se propose de décrire une méthode simple de lutte contre les robots spammer ;
  • et enfin le chapitre 7 se propose de conclure ce tutoriel.

2. Qu'est-ce qu'un forum ?

Un forum de discussion, aussi appelé forum Internet, est un espace qui permet à chaque utilisateur de discuter d'un ou de plusieurs thèmes, en rapport ou non avec le contenu du site.

Chaque utilisateur peut lire à tout moment les interventions de tous les autres et apporter sa propre contribution à la discussion. Lieux de rencontre et d'échange, ces forums ont pour principal intérêt d'être interactifs.

Les créateurs de sites qui souhaitent ouvrir ce type de forum doivent toutefois suivre quelques règles élémentaires de prudence. Le créateur d'un site peut en effet être tenu responsable, civilement et pénalement, de l'ensemble des messages qui y sont publiés.

2.1. Que dit la réglementation au sujet des forums ?

Il n'existe pas en France de réglementation spécifique aux forums Internet. Si l'on se réfère aux textes de loi et à la jurisprudence actuelle :

  • l'auteur d'un message est le premier responsable de son contenu au regard du droit commun ;
  • l'animateur du forum peut être poursuivi comme auteur principal pour les messages qu'il a lui-même postés, mais aussi comme complice pour les messages illicites dont il a provoqué la survenance (par exemple en lançant un thème de discussion de nature illicite) ;
  • le modérateur du forum de discussion peut dans tous les cas être considéré comme complice de l'infraction. Une modération a priori impliquera une plus grande responsabilité ;
  • l'éditeur du site exploitant un forum peut être poursuivi pour les contenus illicites ou préjudiciables aux tiers, en qualité d'auteur principal ou de complice.

2.2. En pratique

Le bon fonctionnement d'un forum de discussion nécessite l'intervention de modérateurs et l'adoption par les utilisateurs d'un code de bonne conduite (par exemple sous la forme d'une charte).

La modération consiste pour le créateur du forum, ou d'autres personnes, à consulter régulièrement les messages mis en ligne et à supprimer ceux qui seraient illégaux : provocation aux crimes et délits, apologie des crimes de guerre, propos racistes, fausses nouvelles susceptibles de troubler l'ordre public, injures, diffamation…

Cette modération peut s'effectuer soit a priori (avant la publication du message), soit a posteriori (après la publication du message).

Tous les acteurs impliqués dans la diffusion de messages sur les forums Internet doivent faire preuve de la plus grande vigilance.

Il est conseillé à chaque participant de mesurer ses propos pour éviter de porter atteinte aux droits des tiers. Il faut notamment éviter les insultes ou les propos diffamants à l'encontre de toute personne morale ou physique et ne poster aucun message à caractère raciste, violent ou pornographique dans des forums de discussion susceptibles d'être fréquentés par des mineurs.

Il est conseillé aux exploitants de forums de discussion :

  • de prévoir une charte de participation au forum ;
  • de supprimer dans les meilleurs délais tout message manifestement illicite dont ils ont eu connaissance ;
  • d'exercer ou de faire exercer par un modérateur un contrôle régulier sur le contenu des messages postés.

3. Vos stratégies face aux spammers

La stratégie à mettre en place face aux spammers dépend de plusieurs facteurs :

  • le cercle des utilisateurs que vous comptez admettre sur votre forum ;
  • la facilité avec laquelle vous souhaitez que votre forum soit visible ;
  • la facilité avec laquelle vous souhaitez que des utilisateurs puissent poster des nouveaux messages ou bien répondre à des messages existants.

De ces choix vont découler trois stratégies :

  • la stratégie de lecture ;
  • la stratégie d'écriture ;
  • la stratégie d'inscription.

3.1. Stratégie de lecture

Quelle est la stratégie que vous voulez appliquer afin que des utilisateurs puissent lire les messages de votre forum ?

  • Lecture anonyme : est-ce que vous acceptez une lecture de manière anonyme, c'est-à-dire qu'il n'est pas nécessaire de disposer d'un compte pour lire les messages de votre forum ?
  • Lecture authentifiée : ou bien, au contraire, est-ce que vous voulez que, pour lire les messages, l'utilisateur ait un compte et soit authentifié sur votre forum ?

De cette stratégie de lecture dépend directement la lisibilité sur Internet et dans les différents moteurs de recherche de votre forum. Il est clair que si vous choisissez une lecture authentifiée, vous serez peu visible mais aussi moins embêté par les spammers de tout poil.

3.2. Stratégie d'écriture

Quelle est la stratégie que vous souhaitez appliquer afin que des utilisateurs puissent poster des messages de votre forum ?

  • Écriture anonyme : est-ce que vous acceptez que n'importe qui puisse poster un message de manière anonyme, c'est-à-dire qu'il n'est pas nécessaire de disposer d'un compte pour créer messages ou bien répondre aux messages existants sur votre forum ?
  • Écriture authentifiée : ou bien, au contraire, est-ce que vous voulez que pour pouvoir poster un nouveau message ou bien répondre à un message, l'utilisateur ait un compte et soit authentifié sur votre forum ?
  • Écriture validée : une troisième stratégie est possible. Elle consiste pour chaque nouveau message ou réponse à un message (que l'utilisateur soit authentifié ou anonyme) à ce que le contenu de ce message soit approuvé et validé par un modérateur du forum. Tant que le message n'est pas approuvé, il reste invisible aux yeux des autres utilisateurs.

De la stratégie d'écriture que vous choisissez dépend partiellement le nombre de messages (bons ou mauvais) qui seront postés sur votre forum. Le nombre de messages postés dépend aussi de l'intérêt suscité par le forum ainsi que de la qualité des interventions (et par conséquent de la modération).

Cette stratégie d'écriture a aussi un impact direct et immédiat sur les messages des spammers. Plus votre stratégie est restrictive et moins vous aurez de messages de spam.

3.3. Stratégie d'inscription

À partir du moment où vous choisissez une stratégie non anonyme (que cela soit en lecture ou en écriture), il faut définir les règles de votre forum pour ce qui concerne l'inscription des nouveaux utilisateurs.

Là encore, il y a plusieurs stratégies possibles en fonction du degré de liberté que vous souhaitez laisser aux différents nouveaux utilisateurs.

  • Inscription immédiate : cette stratégie d'inscription permet à l'utilisateur de créer immédiatement un compte.
  • Inscription vérifiée : cette stratégie d'inscription permet à l'utilisateur de créer un compte. Toutefois, lors de la création de ce compte, il doit fournir une adresse mail valide. Un mail permettant l'activation du compte est alors envoyé à cette adresse mail. Cette stratégie permet de vérifier que l'utilisateur dispose bien d'une adresse mail valide.
  • Inscription validée : cette stratégie d'inscription permet à l'utilisateur de créer un compte. Cependant, ce compte devra être validé et approuvé par un modérateur avant de pouvoir être utilisé.

4. La configuration d'un forum phpBB3

Ce paragraphe s'intéresse aux choix techniques que vous pouvez configurer sur un forum dont le moteur est phpBB3 (version 3.0.10). Les autres moteurs de forum possèdent certainement des fonctionnalités similaires mais ce tutoriel se focalise uniquement sur phpBB3.

Afin de pouvoir voir ou modifier ces paramètres sur un forum phpBB3, il fait être administrateur de ce forum et aller dans le panneau d'administration.

Nous nous intéresserons dans les paragraphes suivants à :

  • la page « Paramètres des messages » qui permet de régler les paramètres de création de nouveaux messages ;
  • la page « Paramètres des inscriptions » qui permet de régler les paramètres relatifs à l'inscription des nouveaux utilisateurs ;
  • la page « Champs de profil personnalisés » qui permet de créer des champs particuliers facilitant la lutte contre les robots spammer ;
  • la page « Paramètres de la confirmation visuelle » qui permet de régler les paramètres de l'image de test de présence humaine.

4.1. La page « Paramètres des messages »

Cette page permet de positionner les valeurs des options concernant la génération de nouveaux messages. Cette page est accessible dans l'onglet « Général », il faut sélectionner l'option « Paramètres des messages » dans le menu de gauche.

Cliquez sur l'image pour l'agrandir
Cliquez sur l'image pour l'agrandir

Les différents paramètres que vous pouvez modifier sont décrits dans le tableau suivant :

Paramètre Description
Autoriser la surveillance des sujets Ce paramètre permet aux utilisateurs de recevoir une notification par mail lorsqu'ils sont abonnés à un sujet particulier et qu'une nouvelle réponse est postée dans ce sujet. Les valeurs autorisées sont « Oui » ou « Non ».
Autoriser la surveillance des forums Ce paramètre permet aux utilisateurs de recevoir une notification par mail lorsqu'ils sont abonnés à un forum particulier et qu'un nouveau message est posté dans ce forum. Ce paramètre ne concerne pas les nouvelles réponses mais uniquement les nouveaux messages. Les valeurs autorisées sont « Oui » ou « Non ».
Autoriser les BBCode Ce paramètre permet d'autoriser l'utilisation du BBCode dans les nouveaux messages et les réponses. Les valeurs autorisées sont « Oui » ou « Non ».
BBCode est l'abréviation de Bulletin Board Code, inventé à travers le langage PHP pour éviter les injections HTML et SQL, utilisée pour mettre en forme les messages de forums de discussion. Par abus de langage, les éléments du BBCode sont appelés balises. Le nom d'une balise est délimité par les crochets [ et ], contrairement au HTML où les caractères < et > sont utilisés. Certaines balises ont une propriété, aussi appelée attribut, dont la valeur est assignée à la balise elle-même à l'aide du symbole =.
Autoriser l'utilisation du BBCode [FLASH] dans les messages Ce paramètre permet d'autoriser l'utilisation du BBCode [FLASH] dans les nouveaux messages et les réponses. Les valeurs autorisées sont « Oui » ou « Non ».
Si le BBCode [FLASH] est désactivé, c'est le système de permission qui détermine les membres pouvant utiliser cette balise.
Autoriser les smileys Ce paramètre permet d'autoriser l'utilisation des smileys dans les nouveaux messages et les réponses. Les valeurs autorisées sont « Oui » ou « Non ».
Autoriser les liens dans les messages et messages privés Ce paramètre permet d'autoriser l'utilisation du BBCode [URL] dans les nouveaux messages et les réponses. Ce paramètre contrôle aussi la transformation automatique des textes en lien. Les valeurs autorisées sont « Oui » ou « Non ».
Le BBCode [URL] est utilisé pour insérer des liens dans les messages.
Autoriser la désactivation de la censure Ce paramètre permet aux utilisateurs de désactiver la censure automatique des messages ou messages privés. Les valeurs autorisées sont « Oui » ou « Non ».
Autoriser la mise en favoris des sujets Ce paramètre permet aux utilisateurs de mettre des sujets en favoris. Les valeurs autorisées sont « Oui » ou « Non ».
Activer la confirmation visuelle pour les visiteurs Oblige les invités à passer le test de vérification humaine afin d'empêcher la publication automatisée de messages.
Autoriser la réponse rapide Cette option vous permet de désactiver le module de réponse rapide sur l'ensemble du forum. Si activé, les paramètres spécifiques de forum seront utilisés pour déterminer si la réponse rapide est affichée pour chacun des forums. Les valeurs autorisées sont « Oui » ou « Non ».
Temps limite d'édition Ce paramètre permet de spécifier le temps pendant lequel un message reste modifiable par l'utilisateur qui a créé ce message.
Limiter le temps de suppression Ce paramètre permet de spécifier le temps pendant lequel un message est supprimable par l'utilisateur qui a créé ce message. Si la valeur vaut 0, cette fonctionnalité est désactivée, il n'est pas possible pour un utilisateur de supprimer son message.
Afficher la raison de la dernière édition Ce paramètre permet de choisir si l'information sur la date de la dernière édition doit être affichée ou non dans les messages. Les valeurs autorisées sont « Oui » ou « Non ».
Intervalle de flood Nombre de secondes qu'un utilisateur doit patienter entre la publication de nouveaux messages. Pour autoriser les utilisateurs à ignorer cela, il faut modifier leurs permissions.
Intervalle de remontée de sujet Ce paramètre spécifie le nombre des minutes, d'heures, ou de jours entre la date du dernier message et la possibilité de remonter le sujet. Si la valeur de ce paramètre vaut “0”, cette fonctionnalité est désactivée.
Sujets par page Ce paramètre permet de spécifier le nombre de sujets qui seront affichés sur une page du forum.
Messages par page Ce paramètre permet de spécifier le nombre de réponses qui seront affichées pour un sujet particulier.
Smileys par page Ce paramètre permet de spécifier le nombre maximal de smileys qui seront affichés sur une page.
Seuil de popularité des sujets Ce paramètre spécifie le nombre de messages requis afin qu'un sujet soit affiché comme étant populaire. Si la valeur de ce paramètre vaut “0”, cette fonctionnalité est désactivée.
Nombre maximal d'options de vote Ce paramètre permet de spécifier le nombre maximal de choix qu'un utilisateur peut positionner lors de la création d'un vote.
Nombre maximal de caractères par message Ce paramètre permet de spécifier le nombre maximal de caractères dans un message. Si la valeur de ce paramètre vaut « 0 », cette fonctionnalité est désactivée et la taille du message n'est pas limitée.
Nombre minimal de caractères par message Ce paramètre permet de spécifier le nombre minimal de caractères dans un message ou un message privé.
Nombre maximal de smileys par message Ce paramètre permet de spécifier le nombre maximal de smileys dans un message. Si la valeur de ce paramètre vaut « 0 », cette fonctionnalité est désactivée et le nombre de smileys n'est pas limité.
Nombre maximal de liens Ce paramètre permet de spécifier le nombre maximal de liens dans un message. Si la valeur de ce paramètre vaut « 0 », cette fonctionnalité est désactivée et il n'y a pas de limitation sur le nombre de liens.
Taille maximale de la police Ce paramètre permet de spécifier la taille maximale de la police utilisable dans les messages.
Nombre maximal de citations imbriquées Ce paramètre permet de spécifier le nombre maximal de citations imbriquées. Si ce nombre est trop élevé, cela peut nuire à la lisibilité des messages.
Largeur maximale d'une image Ce paramètre permet de spécifier la largeur maximale d'un fichier image ou flash dans un message. Si la valeur de ce paramètre vaut « 0 », cette fonctionnalité est désactivée et il n'y a pas de limitation sur la largeur.
Hauteur maximale d'une image Ce paramètre permet de spécifier la hauteur maximale d'un fichier image ou flash dans un message. Si la valeur de ce paramètre vaut « 0 », cette fonctionnalité est désactivée et il n'y a pas de limitation sur la hauteur.

4.2. La page « Paramètres des inscriptions »

Cette page permet de positionner les valeurs des options concernant les demandes d'inscriptions des nouveaux utilisateurs. Cette page est accessible dans l'onglet « Général », il faut sélectionner l'option « Paramètres des inscriptions » dans le menu de gauche.

Cliquez sur l'image pour l'agrandir
Cliquez sur l'image pour l'agrandir

Les différents paramètres que vous pouvez modifier sont décrits dans le tableau suivant :

Paramètre Description
Activation de compte Cela détermine si les utilisateurs ont accès au forum immédiatement ou si une confirmation est requise. Vous pouvez également désactiver complètement les nouvelles inscriptions. “L'envoi d'e-mail” doit être autorisé afin de pouvoir choisir entre l'activation par l'utilisateur ou par l'administrateur. Les quatre valeurs possibles sont :
  • désactiver l'inscription : le choix de cette option empêche l'inscription de tout nouvel utilisateur ;
  • pas de vérification (accès immédiat) : cette option permet au nouvel utilisateur de s'inscrire et d'utiliser immédiatement son nouveau compte. Il n'y a pas de vérification ni de validation ;
  • par l'utilisateur (vérification de l'e-mail) : cette option permet au nouvel utilisateur de s'inscrire. Toutefois, lors de cette inscription, il doit fournir une adresse mail valide. Le processus d'inscription envoie un mail avec des instructions permettant de finaliser l'inscription. Pour que le compte soit définitivement activé, il faut que l'utilisateur suive les instructions de ce mail ;
  • par l'administrateur : cette option permet au nouvel utilisateur de s'inscrire mais la finalisation de cette inscription est faite par l'administrateur du forum qui accepte ou rejette la nouvelle inscription. Cette option permet de limiter le forum à quelques personnes connues de l'administrateur ou alors d'utiliser le principe des « recommandations » pour admettre un nouveau membre.
Limite de messages d'un nouveau membre Les nouveaux membres resteront dans le groupe « Nouveaux utilisateurs enregistrés » jusqu'à ce qu'ils atteignent un certain nombre de messages. Une fois ce nombre de messages atteint, ils passent automatiquement dans le groupe « Utilisateurs enregistrés ».
Ce passage temporaire par le groupe des « Nouveaux utilisateurs enregistrés » permet de supprimer certaines fonctionnalités aux nouveaux utilisateurs. Ils pourront les utiliser plus tard lorsqu'ils auront en quelque sorte prouvé leur sérieux et leur implication sur le forum.
Mettre la valeur 0 dans ce champ permet de désactiver cette fonctionnalité, les utilisateurs font automatiquement partie des « Utilisateurs enregistrés ».
Mettre le groupe des nouveaux utilisateurs enregistrés par défaut Si ce paramètre est activé, et qu'une limite de messages pour les nouveaux membres est indiquée, les nouveaux utilisateurs enregistrés ne seront pas simplement placés dans le groupe Nouveaux utilisateurs enregistrés, mais ce groupe deviendra également leur groupe par défaut. Cela peut s'avérer pratique si vous voulez assigner un rang et/ou un avatar de groupe par défaut afin que les utilisateurs en héritent.
Longueur du nom d'utilisateur Ce champ définit le nombre minimal et maximal de caractères dans le nom d'utilisateur.
Longueur du mot de passe Ce champ définit le nombre minimal et maximal de caractères dans le mot de passe de l'utilisateur.
Limite des caractères du nom d'utilisateur Ce champ permet de restreindre les caractères qui peuvent être utilisés pour les noms d'utilisateur.
Complexité du mot de passe Ce champ permet de définir la politique de complexité du mot de passe de l'utilisateur. Les politiques applicables sont :
  • aucune condition ;
  • doit contenir des minuscules et des majuscules ;
  • doit contenir des lettres et des chiffres ;
  • doit contenir des symboles.

Il faut signaler que les différentes politiques sont cumulatives, c'est-à-dire qu'elles contiennent les politiques précédentes.
Forcer la modification du mot de passe Ce champ permet de forcer tous les utilisateurs du forum à changer leur mot de passe après un certain nombre de jours.
Mettre la valeur 0 dans ce champ permet de désactiver la politique de vieillissement des mots de passe.
Autoriser les changements de nom d'utilisateur Ce champ permet d'autoriser les utilisateurs à modifier leur nom d'utilisateur. Les deux valeurs autorisées sont « oui » ou « non ».
Autoriser les adresses e-mail à être réutilisées Ce champ permet d'autoriser à plusieurs utilisateurs de posséder la même adresse mail. Les deux valeurs autorisées sont « oui » ou « non ».
Activer la confirmation visuelle pour les inscriptions Ce champ permet d'afficher un code visuel aléatoire (un CAPTCHA) que les nouveaux utilisateurs doivent ressaisir afin d'empêcher les inscriptions en masse. Les deux valeurs autorisées sont « oui » ou « non ».
Nombre maximal de tentatives de connexion par nom d'utilisateur Ce champ permet de spécifier un nombre maximal d'erreurs de connexion d'un utilisateur. Lorsque ce nombre est atteint, en plus du mot de passe, il sera demandé de ressaisir un code visuel aléatoire (un CAPTCHA).
Lorsque la valeur de ce champ vaut 0, cette fonctionnalité est désactivée.
Tentatives d'inscription Ce champ permet de spécifier le nombre maximal d'erreurs de connexion d'un utilisateur avant que sa session HTTP n'expire.
Activer la COPPA Cela oblige les utilisateurs à déclarer qu'ils ont treize ans ou plus afin d'être en conformité avec la COPPA (Children's Online Privacy Protection Act). Si cette option n'est pas activée, le groupe spécial COPPA ne sera pas affiché.
Adresse e-mail COPPA Ce champ permet de saisir l'adresse e-mail où les parents pourront envoyer les formulaires d'inscription COPPA.
Numéro de fax COPPA Ce champ permet de saisir le numéro de fax où les parents pourront envoyer les formulaires d'inscription COPPA.

4.3. La page « Paramètres de la confirmation visuelle »

Cette page permet de positionner les valeurs des options concernant la confirmation visuelle, le CAPTCHA. Cette page est accessible dans l'onglet « Général », il faut sélectionner l'option « Paramètres de la confirmation visuelle » dans le menu de gauche.

Le terme « CAPTCHA » est un rétroacronyme : le mot se prononce comme capture en anglais américain et est censé être composé des initiales de Completely Automated Public Turing test to Tell Computers and Humans Apart, soit en français, « test public de Turing complètement automatique ayant pour but de différencier les humains des ordinateurs ». Ce terme, qui est une marque déposée par l'université Carnegie Mellon, a été inventé en 2000 par Luis von Ahn, Manuel Blum et Nicholas J. Hopper de cette université, et par John Langford d'IBM. Le nom « CAPTCHA » peut également être interprété comme "capture character" (capture de caractères).

Ce test est utilisé sur Internet dans les formulaires pour se prémunir contre les soumissions automatisées et intensives réalisées par des robots malveillants.

La vérification utilise la capacité d'analyse d'image ou de son de l'être humain. Un CAPTCHA usuel requiert ainsi que l'utilisateur tape les lettres et les chiffres visibles sur une image distordue qui apparaît à l'écran. Certains sites Web préfèrent afficher une image qui contient une question mathématique.

Ils sont utilisés :

  • contre le spam :
    • lors de l'inscription à des webmails gratuits (dont les comptes pourraient être utilisés par la suite pour l'envoi de courriers non sollicités),
    • lors de la soumission de messages dans des forums de discussion et des blogs (qui pourraient permettre de faire du référencement abusif), etc. ;
  • contre l'extraction automatisée de bases de données ;
  • contre les tentatives d'attaque par force brute ;
  • pour la participation à des sondages (dont les résultats pourraient être faussés par des votes automatisés).
Cliquez sur l'image pour l'agrandir
Cliquez sur l'image pour l'agrandir

Les différents paramètres que vous pouvez modifier sont décrits dans le tableau suivant :

Paramètre Description
Activer la confirmation visuelle pour les inscriptions Ce paramètre oblige les nouveaux utilisateurs à saisir un code aléatoire correspondant à une image afin d'empêcher les inscriptions en masse.
Les deux valeurs autorisées sont « activé » ou «désactivé ».
Tentatives d'inscription Ce paramètre spécifie le nombre de tentatives que les utilisateurs pourront faire dans la saisie du code de confirmation avant que leur session n'expire.
Nombre maximal de tentatives de connexion par nom d'utilisateur Ce paramètre spécifie le nombre maximal de tentatives de connexion autorisé par nom d'utilisateur avant d'activer la confirmation visuelle.
Lorsque la valeur de ce champ vaut 0, cette fonctionnalité est désactivée.
Activer la confirmation visuelle pour les visiteurs Ce paramètre oblige les invités à passer le test de vérification humaine afin d'empêcher la publication automatisée de messages.
Les deux valeurs autorisées sont « activé » ou «désactivé ».
Autoriser les utilisateurs à rafraîchir l'image de confirmation Ce paramètre autorise les utilisateurs à demander de nouveaux codes de confirmation s'ils sont incapables de déchiffrer la confirmation visuelle durant l'inscription. Certains plugins peuvent ne pas supporter cette option.
Plugins installés Ce paramètre permet de sélectionner parmi la liste des plugins disponibles, le plugin de génération du CAPTCHA.
Les plugins grisés ne sont pas disponibles immédiatement et peuvent nécessiter au préalable une configuration pour être utilisés.

5. Implémentation de la politique du forum

Voilà, maintenant, vous connaissez la politique que vous voulez appliquer à votre forum (enfin plutôt les politiques) et vous connaissez les différents paramètres avec lesquels vous allez pouvoir implémenter cette politique.

Comme chaque politique est particulière et répond à un besoin précis, il n'y a aucune généralisation possible, ce paragraphe va donc présenter, à titre d'exemple, la politique mise en place sur mon forum (sans pour autant la justifier).

5.1. La page « Paramètre des messages »

Les paramètres des messages sont les suivants :

Paramètre Valeur
Autoriser la surveillance des sujets Oui
Autoriser la surveillance des forums Oui
Autoriser les BBCode Oui
Autoriser l'utilisation du BBCode [FLASH] dans les messages Oui
Autoriser les smileys Oui
Autoriser les liens dans les messages et messages privés Oui
Autoriser la désactivation de la censure Non
Autoriser la mise en favoris des sujets Oui
Activer la confirmation visuelle pour les visiteurs Oui
Autoriser la réponse rapide Oui
Temps limite d'édition 0 minute
Limiter le temps de suppression 0 minute
Afficher la raison de la dernière édition Oui
Intervalle de flood 120 secondes
Intervalle de remontée de sujet 10 jours
Sujets par page 25
Messages par page 10
Smileys par page 50
Seuil de popularité des sujets 25
Nombre maximal d'options de vote 10
Nombre maximal de caractères par message 60000
Nombre minimal de caractères par message 1
Nombre maximal de smileys par message 0
Nombre maximal de liens 0
Taille maximale de la police 200%
Nombre maximal de citations imbriquées 3
Largeur maximale d'une image 0
Hauteur maximale d'une image 0

5.2. La page « Paramètres des inscriptions »

Les paramètres des inscriptions sont les suivants :

Paramètre Valeur
Activation de compte Par l'utilisateur
Limite de messages d'un nouveau membre 0
Mettre le groupe des nouveaux utilisateurs enregistrés par défaut Non
Longueur du nom d'utilisateur Entre 3 et 20
Longueur du mot de passe Entre 6 et 100
Limite des caractères du nom d'utilisateur N'importe quel caractère
Complexité du mot de passe Aucune condition
Forcer la modification du mot de passe 0 jour
Autoriser les changements de nom d'utilisateur Non
Autoriser les adresses e-mail à être réutilisées Non
Activer la confirmation visuelle pour les inscriptions Oui
Nombre maximal de tentatives de connexion par nom d'utilisateur 3
Tentatives d'inscription 5
Activer la COPPA Non
Adresse e-mail COPPA Vide
Numéro de fax COPPA Vide

5.3. La page « Paramètres de la confirmation visuelle »

Les paramètres de la confirmation visuelle sont les suivants :

Paramètre Valeur
Activer la confirmation visuelle pour les inscriptions Activé
Tentatives d'inscription 5
Nombre maximal de tentatives de connexion par nom d'utilisateur 3
Activer la confirmation visuelle pour les visiteurs Activé
Autoriser les utilisateurs à rafraîchir l'image de confirmation Activé
Plugins installés Image simple

5.4. Le bannissement

Avec l'arrivée des premiers utilisateurs, il a fallu réfléchir à la politique de bannissement à appliquer aux différents utilisateurs qui ne respectaient pas les règles. Ne voulant pas passer trop de temps à modérer ce forum, la politique que j'applique est assez autoritaire :

  • les messages ne respectant pas la charte du forum sont effacés à vue. Pour l'instant les seuls messages que j'ai dû effacer sont des messages de publicité, je n'ai encore eu aucun débordement entre utilisateurs à gérer. Lorsque ce cas se présentera, il est probable que ces messages ne seront plus supprimés mais modérés et modifiés ;
  • lorsqu'un utilisateur poste un spam (vous savez, les petites pilules bleues ou la sex tape de la dernière actrice à la mode), ce message est supprimé et l'utilisateur est immédiatement banni. Je pense que ces utilisateurs (ou robots) ne peuvent pas rentrer dans le droit chemin, il est donc inutile de tenter de discuter avec eux.

Il est possible de bannir un utilisateur de différentes manières avec PhpBB3. Cela peut se faire :

  • par son nom d'utilisateur ;
  • par son adresse IP ;
  • par son adresse mail.

Attention, le bannissement par adresse IP peut avoir des effets de bord. C'est une option à manipuler avec précautions sous peine de bannir d'autres utilisateurs :

  • en effet, plusieurs utilisateurs peuvent avoir la même adresse IP, c'est le cas des utilisateurs d'une entreprise qui utilisent un proxy HTTP pour naviguer sur Internet. C'est aussi le cas des utilisateurs qui sont à la maison, ces utilisateurs utiliseront la même adresse IP, celle de la box d'accès à Internet ;
  • lors du bannissement par adresse IP, il est aussi possible de spécifier une plage d'adresses IP. Ceci peut avoir des effets dévastateurs sur vos utilisateurs si vous ne maîtrisez pas correctement cette plage d'adresses à bannir (une faute de frappe est si vite arrivée).

Attention encore, le bannissement par adresse mail peut aussi avoir des effets de bord. C'est aussi une option à manipuler avec précautions sous peine de bannir d'autres utilisateurs :

  • en effet, plusieurs utilisateurs peuvent avoir la même adresse mail si vous l'avez autorisé ;
  • lors du bannissement par adresse mail, il est aussi possible de spécifier tout un domaine d'adresses mail avec une expression régulière. Ceci peut avoir des effets dévastateurs sur vos utilisateurs si vous ne maîtrisez pas correctement cette expression régulière, imaginez la catastrophe si vous bannissiez « *.gmail.com ».

La bonne nouvelle est qu'un bannissement d'utilisateur n'est pas un effacement d'utilisateur. Celui-ci est marqué comme « banni », avec pour conséquence qu'il ne peut plus se connecter, mais il reste possible de « débannir » cet utilisateur parce qu'il a fait amende honorable ou bien parce que vous vous êtes trompé.

Toujours dans les options de bannissement, il est possible de bannir un utilisateur pour une durée fixée (quelques heures, quelques jours, quelques mois) ou bien définitivement. C'est à vous, lors du bannissement, de choisir cette durée en fonction de votre politique mais aussi en fonction de la faute commise.

Il est aussi possible de supprimer un utilisateur. L'effet d'une suppression est permanent, l'utilisateur ne peut pas être « désupprimé ». Cette option de suppression d'un utilisateur ne doit être utilisée que dans quelques cas particuliers, création d'un compte par erreur ou suppression d'un compte utilisé pour des tests par exemple. Elle ne doit pas être utilisée pour bannir un utilisateur car sinon, celui-ci peut alors revenir avec le même nom.

5.5. Premiers retours d'expérience

La politique instanciée sur ce forum est somme toute assez souple :

  • elle permet aux nouveaux utilisateurs de s'inscrire à condition de disposer d'une adresse mail. Cette inscription ne nécessite pas de confirmation par l'administrateur ;
  • il y a un CAPTCHA à décoder lors de la phase d'inscription afin de se protéger un tout petit peu des différents robots spammer ;
  • il est possible de lire tout le forum de manière anonyme ;
  • pour poster, il faut être identifié et authentifié. Les messages ne sont pas validés par les modérateurs, ils sont visibles immédiatement.

Les nouveaux utilisateurs pouvaient s'inscrire, ils pouvaient poster des messages, j'avais un minimum de travail de modération, tout semblait correct dans le meilleur des mondes.

Puis les spammers ont commencé à arriver et mon travail de modération devenait plus volumineux entre les messages à supprimer et les utilisateurs à bannir. Bannir des adresses mail ou des domaines entiers ne suffisait plus et puis je ne pouvais pas bannir « *.gmail.com », plus personne ne serait venu.

Pour contrer les rafales de messages, j'ai augmenté la valeur du paramètre « Intervalle de flood » que j'ai positionné à 120 secondes. C'est-à-dire qu'un utilisateur ne peut poster un nouveau message ou répondre à un message que toutes les deux minutes seulement. Ce paramètre apporte une aide indéniable pour empêcher les rafales de messages mais les spammers continuaient à venir et à poster ne serait-ce qu'un seul message.

Les CAPTCHA semblaient être décodés par les différents spammers. Je ne sais pas s'ils étaient décodés de manière automatisée ou alors par un humain. Il aurait peut-être fallu augmenter la complexité du CAPTCHA proposé mais, ayant moi-même du mal à décoder ces CAPTCHA plus complexes, je ne voulais pas l'imposer aux utilisateurs.

6. Êtes-vous un robot ?

Il fallait donc retravailler sur la phase d'inscription pour écarter les robots. Et si on leur posait tout simplement la question « êtes-vous un robot ? » pour écarter ces importuns ?

6.1. L'idée de base

Pour contrer les robots spammer, il est nécessaire de comprendre comment ils fonctionnent.

Un robot de forum connaît parfaitement le fonctionnement du forum sur lequel il sévit. phpBB3 étant un forum très connu, les robots ont tout ce qu'il faut pour s'entraîner.

Le but est alors de proposer un comportement par défaut qui est légèrement différent afin que les robots soient perturbés. L'idée est, lors de la phase d'inscription, de poser une question dont la réponse par défaut est fausse. Ainsi, une personne humaine pourra répondre à la question alors qu'un robot va proposer la réponse par défaut lors de l'inscription et sera donc rejeté.

La question à poser est très simple, il peut s'agir de « Êtes-vous un robot ? » avec comme réponse une liste de choix « oui » ou « non » (le choix « oui » étant proposé par défaut) ou alors une question très bête dans le genre « combien font 2 + 2 ? » avec comme réponse une liste de choix « 3 » ou « 4 » (le choix « 3 » étant proposé par défaut).

L'idée était là, il ne restait plus qu'à l'implémenter.

6.2. La page « Champs de profil personnalisés »

Dans phpBB3, cela se passe sur la page « Champs de profil personnalisés ». Cette page est accessible dans l'onglet « Utilisateurs et groupes », il faut sélectionner l'option « Champs de profil personnalisés » dans le menu de gauche.

Un champ personnalisé permet de rajouter un attribut à un utilisateur par exemple, le champ « Profession » ou « Ville ». C'est un champ personnalisé qui va nous aider dans notre lutte contre les robots spammer.

Cliquez sur l'image pour l'agrandir
Cliquez sur l'image pour l'agrandir

Pour créer un nouveau champ, il faut suivre la démarche suivante :

  • saisir le nom du champ (anti_robot par exemple) ;
  • saisir le type de ce champ parmi la liste des types proposés. Le type à sélectionner est « Liste déroulante » ;
  • appuyer sur le bouton « Créer un nouveau champ ». Cette action affiche une page dans laquelle vous pouvez modifier les paramètres de ce champ.
Cliquez sur l'image pour l'agrandir
Cliquez sur l'image pour l'agrandir

Les différents paramètres que vous pouvez modifier sont décrits dans le tableau suivant :

Paramètre Description
Type de champ Ce paramètre n'est plus modifiable. Si les actions précédentes ont été correctement faites, il doit s'afficher « Liste déroulante ».
Identification du champ L'identification du champ est un nom qui vous permet d'identifier le champ de profil dans la base de données et les thèmes.
Afficher publiquement le champ de profil Le champ de profil sera visible dans tous les endroits autorisés dans les paramètres de charge. Régler cela sur « Non » masquera le champ des pages de sujets, des profils et de la liste des membres.
Afficher dans le panneau de l'utilisateur L'utilisateur peut modifier ce champ de profil dans le panneau de l'utilisateur.
Afficher sur l'écran d'inscription Si cette option est activée, le champ sera affiché à l'inscription.
Afficher dans les sujets Si cette option est activée, le champ sera affiché dans le miniprofil des sujets.
Champ obligatoire Oblige l'utilisateur ou les administrateurs à remplir ou à préciser le champ. Si l'option d'affichage sur l'écran d'inscription est désactivée, le champ sera seulement requis lorsque l'utilisateur éditera son profil.
Masquer le champ de profil Masque le champ de profil à tous les autres utilisateurs mis à part à l'utilisateur concerné, aux administrateurs et aux modérateurs qui pourront toujours voir ce champ. Si l'option d'affichage dans le panneau de l'utilisateur est désactivée, l'utilisateur ne pourra pas voir ou modifier ce champ, seuls les administrateurs le pourront.
Nom/titre du champ affiché à l'utilisateur Le nom ou le titre du champ.
Description du champ L'explication du champ sera présentée à l'utilisateur.
Entrées Notez que vous pouvez modifier le texte de vos options et ajouter de nouvelles options en fin de liste. Il est déconseillé d'insérer de nouvelles options entre celles existantes - cela pourrait entraîner l'attribution d'options erronées à vos utilisateurs. Ceci peut également se produire si vous supprimez des options parmi d'autres. La suppression d'options à partir de la fin pourrait avoir comme conséquence une mauvaise redirection des utilisateurs sur un article.

Il y a aussi des options particulières pour le champ, ces options sont modifiables en cliquant sur le bouton « Options particulières du type de profil ».

Cliquez sur l'image pour l'agrandir
Cliquez sur l'image pour l'agrandir

Ces options particulières sont :

Paramètre Description
Valeur par défaut Ce paramètre permet de spécifier la valeur par défaut du champ.
Option égale à la valeur de non-saisie Valeur de non-saisie. Si le champ est obligatoire, une erreur est affichée lorsque cette valeur est saisie par l'utilisateur.

6.3. Le champ « anti_robot »

Les valeurs que j'ai positionnées dans le champ « anti_robot » sont les suivantes :

Paramètre Valeur
Type de champ Liste déroulante
Identification du champ anti_robot
Afficher publiquement le champ de profil Non
Afficher dans le panneau de l'utilisateur Décoché
Afficher sur l'écran d'inscription Coché
Afficher dans les sujets Décoché
Champ obligatoire Coché
Masquer le champ de profil Coché
Nom/titre du champ affiché à l'utilisateur Êtes-vous un robot ?
Description du champ Champ obligatoire pour détecter les robots.
Entrées OUI
NON

Les options particulières positionnées sont les suivantes :

Paramètre Valeur
Valeur par défaut OUI
Option égale à la valeur de non-saisie OUI

Ainsi, lors de l'inscription sur le forum, un nouvel utilisateur se verra poser la question « Êtes-vous un robot ? » dont la réponse par défaut est « OUI ». Pour pouvoir s'enregistrer, l'utilisateur devra sélectionner la valeur « NON » dans la liste déroulante des réponses possibles. Un robot, ne sachant pas que ce champ existe se verra refoulé et, ainsi, restera aux portes du forum.

Cliquez sur l'image pour l'agrandir
Cliquez sur l'image pour l'agrandir

7. Conclusions

Au début, je pensais que mon forum était protégé des robots spammer du fait du CAPTCHA qu'il est nécessaire de décoder pour procéder à l'inscription. Il faut croire que les robots sont maintenant capables de décoder ce CAPTCHA facilement ou alors qu'ils sont aidés par des personnes de manière automatisée dans cette tâche de décodage.

Auparavant, j'avais environ cinq ou six robots spammer par jour qui s'inscrivaient sur le forum. Depuis l'application de cette modification et l'ajout de la question « Êtes-vous un robot ? », je n'en ai plus. Bien sûr, cela ne décourage pas les spammers humains et il ne faut pas pour autant abandonner la tâche de modération.

Je ne me fais pas d'illusion non plus, les robots deviendront plus intelligents et ils reviendront sur le forum. À ce moment, je modifierai le nom du champ ou bien je rajouterai un autre champ avec plusieurs réponses dans la liste des choix possibles et la bonne réponse sera noyée dans cette liste de choix.

En attendant leur retour, la tâche de modération du forum est allégée et je peux me consacrer pleinement au contenu du forum.

7.1. Sources d'inspiration

Le contenu du chapitre 2 est directement issu de cet article.

7.2. Remerciements

Je tiens à remercier Torgar pour l'aide qu'il m'a apportée lors de la rédaction ce document.

Je tiens à remercier ClaudeLELOUP et son œil acéré pour l'aide qu'il m'a apportée lors de la relecture de ce document.