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

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


Боковая панель

ru:blacklist

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

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

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

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

Блокировку по IP можно сделать, воспользовавшись запрещающим указанием (директивой) серверу Apache 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.txt · Последнее изменение: 2021-03-14 11:05 — Aleksandr