Table of Contents

Чёрный список

Интернет теперь не такой, как раньше, всё хорошее портится, это касается и разных вики. Реклама в вики, как и в блогах и электронной почте, набирает обороты. Если «Докувики» используется в интранете, у вас нет такой проблемы, но если вы намереваетесь использовать её на просторах интернета, то возможно захотите добавить в чёрный список известные вам спам-слова.

Для использования чёрного списка в «Докувики» необходимо:

Блокировку по IP можно сделать, воспользовавшись запрещающим указанием (директивой) серверу Apache deny или плагином IP Banning.

Добавление и удаление блокируемых слов из списка

Вы можете добавить свои собственные блокируемые слова, создав файл conf/wordblock.local.conf и поместив свои сокращения.

(long|loud) shouting

Отключите блокируемые слова по умолчанию, добавив в начале восклицательный знак (!):

!woww gold

Источники чёрного списка

Рекомендуется ежедневно обновлять чёрный список из общественных ресурсов. Вот эти ресурсы:

Википедия

Хорошие люди в Википедии поддерживают подобный чёрный список. Используйте следующую команду для обновления своего чёрного списка из этого источника:

$> curl http://meta.wikimedia.org/wiki/Spam_blacklist?action=raw |grep -v '<pre>' > conf/wordblock.conf

Ведение журнала блокируемых атак

Небольшое изменение файла inc/common.php позволит регистрировать заблокированные атаки в файле /data/meta/wordblock.log и может быть использовано для корректировки чёрного списка.

Найдите строку:

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'];
[...]

Замените на:

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'];
[...]

Смотрите также