at posts/single.html

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

と表示されるんだよなぁ…。

関連する日記