Manual:$wgSpamRegex/fr

Tout texte ajouté à une page du wiki correspondant à cette expression régulière (ou "regex") de localsettings.php sera reconnu comme de la pollution Wiki et l'édition sera bloquée.

$wgSpamRegex est une des fonctionnalités anti-pollution intégrées les plus efficaces. Elle ne bloquera pas toutes les pollutions, mais pourra les réduire significativement, presque sans aucun impact négatif pour les utilisateurs légitimes. Les paramètres de configuration de $wgSpamRegex contrôleront comment MediaWiki examine le texte des contributions et détermine si ce sont ou non des pollutions.

Si votre expression régulière de filtrage des pollutions échoue sans bruit, elle peut nécessiter plus de mémoire ! Voyez

Un gros exemple
L'exemple suivant est un bon paramètre à essayer sur votre wiki, s'il est de taille moyenne/petite et souffre de nombreuses attaques polluantes. Copiez ce qui suit dans votre fichier LocalSettings.php : Remarquez que les ligens 2 à la fin n'ont pas le "|" à la fin de la chaîne. Ceci est parce que la ligne suivante termine l'expression régulière avec la marque fermante / suivie de la bascule "i".

Cet exemple incorpore les mots clés polluants classiques (certains pris de Liste noire des pollueurs de Meta-Wiki) et aussi des techniques pour bloquer les pollutions cachées par CSS.

Utiliser des expressions régulières pour bloquer les pollutions
Expérimentez avec le paramètre $wgSpamRegex, et testez avec quelques éditions sur votre bac à sable, pour voir ce qui est bloqué. Mais attention ! Veillez à éviter les faux positifs, c'est-à-dire les éditions légitimes correspondant à tort ; voyez ci-dessous.

Le paramètre que vous assignez à $wgSpamRegex est une expression régulière (voyez l'article de Wikipedia et le manuel PHP sur les expressions régulières). L'exemple ci-dessus montre une expression régulière construite sur plusieurs lignes, utilisant la syntaxe point de PHP pour concaténer les chaînes. Cela rend les expressions régulières longues plus lisibles, mais aussi un peu plus compliquées.

Si vous créez votre propre expression régulière, vous pouvez les tester dans un évaluateur de regex PCRE (cliquez sur l'onglet PCRE sur cette page).

Exemple simple
Voici un exemple beaucoup plus simple :

Rappelez-vous que l'idée est de décider - Est-ce une pollution ou non ? Avec cet exemple, tout texte contributif contenant 'buy-viagra' sera identifié comme de la pollution. Les symboles '/' au début et à la fin font partie de la syntaxe de l'expression régulière.

Bloquer plusieurs différents mots/domaines
Étendons notre exemple pour essayer de correspondre à d'autres types de pollution :

Utilisant un symbole '|' entre les mots, l'exemple ci-dessus bloquera différents mots polluants différents, et aussi des noms de domaine qui sont promus par les pollueurs.

La $wgSpamRegex est appliquée à tous les textes contributifs, incluant les pollutions comme les liens URLs. Ainsi, le blocage de noms de domaine peut être un moyen efficace de se débarrasser d'un pollueur particulier.

ÉVITER LES FAUX POSITIFS!
Éviter les faux positifs est le vrai défi ici, et le mieux est de l'illustrer par un mauvais exemple :

Beaucoup de pollueurs parlent de 'cialis' (une sorte de drogue) et vous pouvez donc être tentés de faire correspondre ce mot à une pollution, mais cela empêchera également les utilisateurs de mentionner le mot 'specialist.' Il est très facile de faire ce genre d'erreur. Veillez au paramétrage de vos expressions régulières. Vous voulez arrêter les pollueurs sans gêner vos utilisateurs.

Autres trucs d'expression régulière
Les expressions régulières sont très puissantes. La correspondance $wgSpamRegex s'applique à tous les textes de la page ou de la section éditée, pas qu'aux URLs. Cela vous permet de bloquer tout ce que vous n'aimez pas, si vous arrivez à trouver une expression régulière qui y correspond (soyez aussi précis que possible pour éviter les faux positifs). Dans la section suivante sur la pollution cachée par CSS, nous utilisons cet outil.

Messages correspondant à de la pollution
Normalement, quand le paramètre $wgSpamRegex correspond à de la pollution, le message suivant est affiché :


 * La page que vous voulez enregistrer est bloquée par le filtre de pollution. Cela est probablement dû à un lien vers un site externe en liste noire.
 * Le texte suivant est ce qui a déclenché notre filtre de pollution: [mot/nom de domaine qui a été bloqué]
 * Le texte suivant est ce qui a déclenché notre filtre de pollution: [mot/nom de domaine qui a été bloqué]

Ce texte peut être modifié, et il se situe dans deux pages wiki éditables dans l'espace de noms MediaWiki. Cliquez sur 'Pages spéciales' -> 'Données et outils Wiki: Messages Système', tapez 'spampro' dans le champ 'Filtrer par préfixe:' et cliquez sur 'Aller'. Si vous obtenez 'Voir la source' au lieu de 'Modifier' sur l'onglet du haut, alors vous n'avez pas la permission de l'éditer. Vous devez vous connecter en tant qu'utilisateur sysop (ou l'utilisateur WikiSysop que vous avez configuré pendant l'installation).

'$1' dans MediaWiki:Spamprotectionmatch affiche la correspondance de la regex de la modification échouée qui a déclenché le filtre de pollution. Supprimez '$1' si vous voulez qu'il soit caché.

Afficher/Dissimuler le texte correspondant
Si vous avez fait une regex trop restrictive, ou avez fait une erreur dans le paramètre, alors vous pouvez obtenir de faux positifs. En fait, l'exemple complet ci-dessus peut correspondre à du texte légitime dans certaines circonstances exceptionnelles (peut-être que vos utilisateurs veulent vraiment parler d'achat de Viagra). En affichant le texte correspondant, le message MediaWiki:Spamprotectionmatch aide à réduire les problème provoqués par les faux positifs. Cela permet à vos utilisateurs de vous signaler précisément les problèmes sur votre paramètre $wgSpamRegex. Il leur permet aussi de chercher un contournement pour qu'ils puissent continuer leur édition du wiki.

Malheureusement, c'est aussi un moyen d'information très utile pour les pollueurs visitant votre site. Certains pollueurs sont des robots automatisés, donc ils ne verront de toutes façons pas cette information ; cependant, de nombreux pollueurs (croyez-le ou non) sont des humains. Ces humains peuvent prendre la peine de regarder l'information de correspondance, et essayer de trouver un contournement (par ex. éviter simplement le nom de domaine que vous avez bloqué, mais faire des liens vers d'autres domaines divers). Il est difficile de savoir si cette façon de faire est répandue, mais si vous voulez leur compliquer la tâche, vous pouvez modifier l'information de correspondance de la pollution en laissant simplement votre message MediaWiki:Spamprotectionmatch vide. Vous ne devriez faire cela que si vous êtes conscients des points ci-dessus sur les faux positifs, et avez soigneusement conçu la regexp pour les éviter.

Pollution cachée par CSS
MediaWiki est assez permissif quant à ce qui touche aux balises HTML et aux définitions de style CSS (voyez Help:HTML dans le wikitext sur Meta-Wiki)

Cela a donné aux pollueurs l'opportunité d'inventer une ruse sournoise pour cacher leur pollution des regards. Elle ne s'affiche pas sur vos pages, mais s'affiche dans vos boîtes d'édition et les changements s'affichent dans vos 'changements récents'. Ainsi, ils provoquent une confusion à vos utilisateurs légitimes, et cela, avant que vous ne preniez en compte les effets d'aider un pollueur en hébergeant ses liens. En général, 'la pollution cachée par CSS' est mauvaise. Et le simple fait que vous ne puissiez pas la voir (facilement) ne veut pas dire que vous pouvez l'ignorer.

Le problème a été identifié par les gens de chongqed.org en 2005, mais a empiré en 2006, au point qu'il semblait que la plupart des pollueurs de mediawiki utilisaient cette technique.

Nous pouvons utiliser une expression régulière pour empêcher les ruses CSS qu'ils utilisent. Deux d'entre elles sont incorporées dans l'exemple complet ci-dessus (avec le symbole '|') :

Pour éviter une pollution cachée par CSS de la forme  :

Pour éviter la pollution cachée par CSS de la forme style="display:none;" :

Pour un paramètre un peu plus strict, vous pouvez préférer désactiver les divers attributs de la balise style également :

...mais vous pouvez trouver que cela commence à restreindre vos utilisateurs plus que souhaité.

Bloquer tous les liens externes
Vous pouvez bloquer tous les liens externes en utilisant cette regex : C'est très restrictif pour les utilisateurs légitimes du wiki, car ils ne peuvent plus faire de lien vers un site externe quelconque. C'est une pauvre solution au problème de pollution, bien qu'un peu mieux qu'un verrouillage complet.

Si vous allez utiliser cela, assurez-vous que votre page 'MediaWiki:Spamprotectiontext' explique ce que vous faites.

Limiter les liens externes à 100
Vous pouvez limiter le nombre total de liens externes autorisés par page à, disons 100, avec

Si vous faites cela, assurez-vous que votre page 'MediaWiki:Spamprotectiontext' explique ce que vous faites.

pcre.backtrack_limit
Si la regex de votre filtre de pollution échoue silencieusement, elle peut nécessiter plus de mémoire! Ou vous pouvez devoir écrire mieux votre regex pour qu'elles ne consomme pas trop: faites des * non gourmands en y ajoutant un ?, comme *?, peut augmenter beaucoup l'efficacité! Testez vos regex faites maison sur un évaluateur de regex PCRE (cliquez sur l'onglet PCRE là).

PHP 5.2.x a introduit pcre.backtrack_limit avec par défaut 100000 (moins de 100K). Je pense que c'est trop bas et fait tomber la regex. Voyez le commentaire de stronk7 at moodle dot org' du 13/09/2007 (cherchez '13-Sep-2007') sur http://us.php.net/manual/en/ref.pcre.php. Essayez d'ajouter la ligne suivante à LocalSettings.php :

Je ne connais pas la valeur appropriée. 8M fonctionne pour moi et est évoqué au paragraphe 4 de l'introduction de l'article Expressions Régulières Compatibles avec Perl de Wikipedia. Quelqu'un qui en sait plus peut ajouter cela ou commenter.

Voir aussi

 * Anti-spam features/fr
 * Extension:SpamRegex/fr
 * Extension:ConfirmEdit/fr