DokuWiki

It's better when it's simple

Outils pour utilisateurs

Outils du site


fr:blacklist

Bannissement par liste noire

Internet n'est plus le lieu qu'il a été. Toute bonne chose est corrompue, et il en va de même pour les wikis. Le WikiSpam, comme le spam dans les blogs et courriels est en augmentation. Si vous utilisez DokuWiki sur votre intranet, alors il n'y a aucun problème. Mais si vous voulez l'utiliser sur l'internet ouvert, vous pourriez vouloir bannir certains mots de spam connus.

Ce mécanisme empêche l'enregistrement de pages contenant un mot placé en liste noire.

Pour utiliser une liste noire dans DokuWiki :

  • Activez l'option usewordblock
  • éditez ensuite le fichier conf/wordblock.local.conf. Vous pouvez voir la liste des termes bannis par défaut dans le fichier conf/wordblock.conf.

Le fichier contient des expressions régulières (compatible perl ou PCRE). Si l'une d'elles correspond, l'enregistrement d'une page est refusé. Pour comprendre la raison de l'inscription d'un certain texte dans la liste noire, vous pouvez utiliser l'extension whyspam pour analyser le texte.

On peut mettre en place un bannissement basé sur des adresses IP soit en utilisant l'extension ipban, soit en agissant sur le serveur web. Par exemple avec la directive deny from d'apache 2.2 ou la directive Require not ip d'Apache 2.4.

Sources de listes noires

Il est recommandé de mettre à jour la liste noire par une tâche planifiée quotidienne à partir d'une source externe de confiance. Ci après, quelques sources externes.

Wikipedia

Les gentilles personnes de Wikipedia maintiennent une telle liste. Vous pouvez utiliser cette commande pour mettre à jour votre liste noire à partir de cette source :

$> curl -sk https://​meta.wikimedia.org/​wiki/​Spam_blacklist?​action=raw | egrep -v '<?pre>'​ > conf/​wordblock.local.conf

N'oubliez de créer le fichier conf/wordblock.local.conf.

Journaux des attaques bloquées

Il est possible d'obtenir un journal des attaques bloquées dans le fichier/data/meta/wordblock.log en modifiant le fichier inc/common.php, utile également pour résoudre le débogage de listes de blocage

Rechercher la section :

function checkwordblock($text=''){
[...]
   if(count($re) && preg_match('#('.join('|',$re).')#si',$text,$matches)) {
      // prepare event data
      $data['matches'] = $matches;
      $data['userinfo']['ip'] = $_SERVER['REMOTE_ADDR'];
[...]

Changez la par:

function checkwordblock($text=''){
[...]
    if(count($re) && preg_match('#('.join('|',$re).')#si',$text,$matches)) {
       // prepare event data       
       io_saveFile($conf['metadir'].'/wordblock.log', strftime($conf['dformat'])."\t".$matches[0]."\t".$ID.$_SERVER['REMOTE_USER']."\t".$_SERVER['REMOTE_ADDR'].":".$_SERVER['SERVER_PORT']."\t".gethostbyaddr($_SERVER['REMOTE_ADDR'])."\t".$_SERVER['HTTP_USER_AGENT']."\n", true);
 
      $data['matches'] = $matches;
      $data['userinfo']['ip'] = $_SERVER['REMOTE_ADDR'];
[...]

Voir aussi

fr/blacklist.txt · Dernière modification : 2018-05-05 12:41 de Digitalin

Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki