====== ブラックリスト ====== インターネットは以前のように安全な場所ではありません。 古き良きものは崩れ去り、それは Wiki でも同様です。 電子メールやブログのスパムのような [[meatball>WikiSpam]] が増えています。 [[ja:dokuwiki|DokuWiki]] をイントラネットで使用している場合は全く問題ありません。 しかし、インターネット上で使用する場合、既知のスパムの単語をブラックリストに載せることができます。 DokuWiki 内でのブラックリストの使用方法: * 設定管理で[[ja:config:usewordblock|設定項目: usewordblock]] オプションを有効にする(デフォルトで有効) * ''conf/wordblock.local.conf'' を編集する。既存のブロック単語一覧は ''[[https://github.com/splitbrain/dokuwiki/blob/master/conf/wordblock.conf|conf/wordblock.conf]]'' ファイルにあります。このファイルには Perl 互換の[[wpjp>正規表現]]が含まれており、保存される内容が一致した場合、ページの保存を拒否します。特定の文章がスパムとして拒否された理由を理解するには、文章を解析する [[plugin:whyspam|whyspam plugin]] を使用します。 IP アドレス単位での拒否には、Apache の [[http://httpd.apache.org/docs/2.4/ja/mod/mod_access_compat.html#deny|Deny ディレクティブ]]か[[ja:plugin:ipban|IPアドレス禁止プラグイン]]を利用します。 ===== ブラックリスト情報源 ===== 日々のクローンジョブによって、公開された情報源からブラックリストを更新することをお薦めします。 以下は、使用可能な情報源一覧です。 ==== Wikipedia ==== Wikipedia には [[wpmeta>Spam_blacklist|同様のブラックリスト]]を維持管理している素晴らしい人がいます。 次のコマンドで、この情報源から自分のブラックリストを更新できます: $> curl http://meta.wikimedia.org/wiki/Spam_blacklist?action=raw |grep -v '
' > conf/wordblock.local.conf ===== ブロックした攻撃の記録 ===== DokuWiki の [[xref>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']; [...]
===== 関連項目 ===== * [[ja:config|DokuWiki の設定]]