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