====== 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ů]]