====== Czarne listy ====== Internet nie jest już tym samym miejscem, co kiedyś. Wszystko co dobre zostało zepsute i tak też stało się z systemami Wiki. [[meatball>WikiSpam]], jak Spam na blogach i w mailach ciągle rośnie. Jeśli używasz [[DokuWiki]] w intranecie, to nie jest twój problem. Jednak jeśli masz zamiar wykorzystać ją w otwartym internecie możesz chcieć dodać do listy blokowanych pewne znane słowa Spamu. Aby korzystać z czarnej listy w DokuWiki włącz opcję ''$conf['usewordblock'] = 1;'' w ''conf/local.php'' (domyślnie jest ona ustawiona na 1) i zmień plik ''conf/wordblock.local.conf''. Możesz przejrzeć zawartość pliku ''conf/wordblock.conf'' by sprawdzić istniejącą listę blokowanych słów. Plik zawiera [[wp>Regular Expressions|wyrażenia regularne]] (zgodne z Perl), jeśli dopasowane zostaje któreś z nich zapis jest zabroniony. Blokowanie bazujące na IP może być wprowadzone przy użyciu dyrektyw Apache [[http://httpd.apache.org/docs/mod/mod_access.html#deny|deny from]] lub wtyczki [[plugin:ipban]]. By zrozumieć, dlaczego pewne treści są banowane za spam, możesz skorzystać z wtyczki [[plugin:whyspam]] by zanalizować tekst. ===== Źródła czarnych list ===== Zalecana jest aktualizacja czarnych list ze źródeł publicznych poprzez codzienne zadanie cron. Oto lista źródeł, których możesz użyć w tym celu. ==== Chongqed ==== Czarna lista utrzymywana przez ludzi na [[http://chongqed.org/|chongqed.org]] wydaje się być już niedostępna $> wget http://blacklist.chongqed.org/ -O conf/wordblock.conf ==== Wikipedia ==== Dobrzy ludzie z Wikipedii utrzymują [[wpmeta>Spam_blacklist|podobną czarną listę]]. Możesz użyć następującego polecenia by zaktualizować swoją czarną listę z tego źródła: $> curl http://meta.wikimedia.org/wiki/Spam_blacklist?action=raw |grep -v '
' > conf/wordblock.conf

===== Logowanie zablokowanych ataków =====

Ta mała zmiana umożliwi logowanie blokowanych ataków w \DATA\meta\wordblock.log i może również służyć do kontrolowania listy blokad.\\
Wymaga jednak modyfikacji oryginalnego pliku DokuWiki.


**Plik:**
\inc\common.php

**Poszukiwana linia:**

    if(preg_match('#('.join('|',$re).')#si',$text, $match=array())) {
      return true;
    }


**Zmiana:**

    if(preg_match('#('.join('|',$re).')#si',$text, $match=array())) {

      preg_match('#('.join('|',$re).')#si',$text, $match);
      io_saveFile($conf['metadir'].'/wordblock.log', date($conf['dformat'])."\t".$match[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);

      return true;
    }