bbpressで掲示板を運営していると、いつ頃からかユーザー登録スパムに悩まされるようになりました。そこで、対策方法を探していた所、human-testというプラグインを発見!
ただし、この方法は、bbpress1.0系(スタンドアローン)の方法です。bbpress2.0系(プラグイン)では検証しておりません。
human-testをダウンロード、解凍しbbpress内のbb-pluginsフォルダにhuman-test.phpをアップロード、有効化するだけでOK!とっても簡単です。
ユーザー登録ページに自動的に計算式が表示されます。

human-test.phpの72行目で、メッセージを変更出来ます。
echo '
<fieldset><legend>'.__("Please prove you are human (and not a robot)").'</legend>
<table style="width: 100%;">
<tbody>
<tr class="required">
<th scope="row" nowrap="nowrap">';
“Please prove you are human (and not a robot)”
↓
“ユーザー登録ロボットで無い証明に以下の計算をお願いします”
お好きな日本語メッセージに書き換え完了(文字コードはUTF-8で保存)。
プラグインを入れてから、ほぼスパムは0になりました。
100%防げるわけではなさそうです。
追記
プラグインでスパムが激減したのもつかの間、今度はユーザー登録と投稿スパムが毎日のようにやって来ました。
そこで、「.htaccess」ファイルを使い、特定のIPアドレスをアクセスを拒否するようにしました。
スパム投稿がされた場合、データベースの「bb_posts」の「poster_ip」を見に行きIPアドレスを特定します。
例えば、スパム投稿のIPアドレスが「111.222.333.444」の場合、以下のように記述。
order allow,deny allow from all deny from 111.222.333.444
更に、「111.222.333.555」のように下の桁を変えてスパム投稿がくる場合、以下のように追加すると「111.222.333.555」だけでなく「111.222.333.666」「111.222.333.777」も弾いてくれます。
order allow,deny allow from all deny from 111.222.333.444 deny from 111.222.333.
拒否するIPアドレスを記述した「.htaccess」ファイルをbbpressフォルダにアップロードします。
「.htaccess」が無いもしくは作れない場合、「htaccess.txt」を作りアップロードしてから「.htaccess」と名前の変更をします。
何度かIPアドレスを変えてきたスパムも、地道に拒否しているうちに来なくなりました。
ちなみに、IPひろばでドコの国からスパムが来ているのかがわかります。その国すべてのIPアドレスを拒否するという手もありますが、普通に見てくれているユーザーさんもいるので、やるとしたら最終手段ですね。
2012-02-28 (火) 16:47 投稿