====== Zařazení na černou listinu ====== https://www.dokuwiki.org/blacklist FIXME Je potřeba zkontrolovat! Internet už není tím, čím býval. Všechno dobré se časem zneužije - a wiki není výjimkou. [[meatball>WikiSpam]], podobně jako spam v blozích nebo e-mailech, je na vzestupu. Pokud používáte [[DokuWiki]] v rámci intranetu, nemusíte se tím trápit. Ale pokud ji provozujete veřejně na internetu, možná budete chtít zablokovat některé známé spamové výrazy. Pro použití blacklistu v DokuWiki: * povolte volbu [[doku>config:usewordblock]] v konfiguračním správci (ve výchozím stavu zapnuto); * upravte soubor ''conf/wordblock.local.conf''. Pro inspiraci se podívejte do ''[[https://github.com/dokuwiki/dokuwiki/blob/master/conf/wordblock.conf|conf/wordblock.conf]]''. Soubor obsahuje [[wpcs>Regulární výrazy]] (kompatibilní s Perl syntaxí). Pokud se některý výraz shoduje, uložení stránky je zakázáno. Pro zjištění, proč byl určitý text označen jako spam, použijte plugin [[doku>plugin:whyspam]]. Blokování podle IP adresy lze provést pomocí direktiv Apache ''[[http://httpd.apache.org/docs/mod/mod_access.html#deny|deny from]]'' nebo pomocí pluginu [[doku>plugin:ipban]]. ===== Přidávání/odebírání blokovaných výrazů ===== Vlastní výrazy můžete přidat vytvořením souboru ''conf/wordblock.local.conf'' a vložením výrazů: (long|loud) shouting Výchozí blokované výrazy lze deaktivovat prefixem ''!'': !woww gold ===== Zdroje pro blacklist ===== Doporučuje se aktualizovat blacklist z veřejného zdroje pomocí denního cronjobu. Zde je jeden z dostupných zdrojů: ==== Wikipedie ==== Wikipedie udržuje [[https://meta.wikipedia.org/wiki/Spam_blacklist|podobný blacklist]]. Pro aktualizaci můžete použít následující příkaz: $> curl -sk https://meta.wikimedia.org/wiki/Spam_blacklist?action=raw | egrep -v '' > conf/wordblock.local.conf Nezapomeňte vytvořit soubor ''conf/wordblock.local.conf''. ===== Logování zablokovaných útoků ===== Malá úprava v souboru [[https://codesearch.dokuwiki.org/search?project=dokuwiki&defs=&path=inc%20common.php|inc/common.php]] umožní logovat zablokované pokusy do ''/data/meta/wordblock.log'' a může se hodit i pro ladění blacklistu. **Vyhledejte řádek:** 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']; [...] **Změňte na:** 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']; [...] ===== Viz také ===== * [[config|Konfigurace DokuWiki]] * [[doku>plugin:confmanager|{{https://raw.githubusercontent.com/cosmocode/confmanager/master/admin.svg?16}}]][[doku>plugin:confmanager|Správce konfiguračních souborů]]