Wiki と荒らし (5) - ホワイトリストでの対策
PukiWiki 1.4.5 をベースにアドホックに対策した。
まずは plugin/edit.inc.php 。 ホワイトリストによって拒否された場合は、ログに残すようにしている。
function plugin_edit_action() { // 中略 if(defined('PLUGIN_EDIT_WHITELIST')) { if(!preg_match(PLUGIN_EDIT_WHITELIST, $_SERVER['REMOTE_HOST'])) { $fp = fopen(DATA_HOME . 'log/' . strftime('%y%m%d') . '.ignore.log', 'a'); fwrite($fp, strftime('%y/%m/%d %H:%M:%S' . "\t" . $_SERVER['REMOTE_HOST'] . "\t" . $page . "\n")); fclose($fp); die_message('PLUGIN_EDIT_WHITELIST prohibits editing'); } }
設定ファイル pukiwiki.ini.php にホワイトリストを記述。 ここでは、 jp ドメインすべてと YahooBB! からの接続を許可している。 あとはログを見ながら適宜追加していく。
define('PLUGIN_EDIT_WHITELIST', "/(\.jp)|(yahoobb\d+\.bbtec\.net)$/i");
コメントプラグイン (comment.inc.php, pcomment.inc.php) も同じように修正した。 とりあえず、この方法で対処して様子をみよう。
otsune さんに教えていただいた RBL 方式も魅力的なので、近いうちに試してみたい。 でも、最初の攻撃元だった cache-ank.meteksan.net.tr (213.139.192.139) を検索すると、
Result for 213.139.192.139: Not found in our blocking list
と表示されるんだよなぁ…。