DokuWiki

It's better when it's simple

Инструменты пользователя

Инструменты сайта


ru:blacklist

Это старая версия документа!


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

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

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

  • включить опцию конфигурации «usewordblock», либо прописать в файле conf/local.php строку «$conf['usewordblock'] = 1;»,
  • отредактировать файл conf/wordblock.local.conf. В файле conf/wordblock.conf можно посмотреть существующий список блокируемых слов, в том числе с Perl-совместимыми регулярными выражениями и если вводимый текст будет соответствовать какому-либо из них, то в сохранении изменённой страницы будет отказано, однако без указания причины. Чтобы засечь совпадения в тексте по текущему списку, воспользуйтесь плагином «whyspam» для анализа текста.

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

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

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

Википедия

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

$> 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'];
[...]
ru/blacklist.1364284173.txt.gz · Последнее изменение: 77.34.115.113

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: 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