2007年05月20日
ブログへの、スパムコメント対策
[
更新情報など]
少し前から、このブログへのスパムコメントがやたら多くなってきて、閉口しておりました。
プログラムの修正には時間がかかりそうだったので、都度削除していたのですが…
(何をどう修正すればいいか不明だった)
さすがに、毎日50件近くも削除する日々を1ヶ月以上も過ごすと、「
プログラム対応しないと、やってられない!」
と思うようになり、対応することにしました。
というわけで、前回掲示板のスパム対策でもお世話になった
【コンピュータ関連の備忘録】様の、
このページを参考に、Movable Typeのプログラムを修正しました。
(今のところ、英文スパムコメントしか来ないので、その対応だけです)
で、結果…
おおっ! あんなにしょっちゅう来ていた英文スパムコメントが、まったく来なくなった!
メデタシメデタシでした。
<以下、修正内容詳細>
ブログ環境 :Movable Type 3.33-ja
修正ファイル:\lib\MT\App\Comments.pm
修正内容 :英文のみのコメントをエラーにする
修正箇所 :赤字の部分を追加
注意)行の先頭にある半角SPACEが表示されない為、全角SPACEを埋めています
COPYして使われる方は、全角SPACEを半角SPACEに置き換えて下さい。
sub post {
my $q = $app->{query};
return $app->error($app->translate("Invalid request"))
if $app->request_method() ne 'POST';
my $entry_id = $q->param('entry_id')
or return $app->error($app->translate("No entry_id"));
require MT::Entry;
my $entry = MT::Entry->load($entry_id)
or return $app->error($app->translate(
"No such entry '[_1]'.", scalar $q->param('entry_id')));
return $app->error($app->translate(
"No such entry '[_1]'.", scalar $q->param('entry_id')))
if $entry->status != RELEASE;
## Japanese Hiragana Check START_
my $MyText = $q->param('text');
$MyText = MT::I18N::encode_text($MyText, undef, 'euc-jp');
if(($MyText ne "") && ($MyText !~ m/(\xA4[\xA1-\xF3]){2}/)){
return $app->handle_error($app->translate(
"Comment text is required."));
}
## Japanese Hiragana Check END_
require MT::IPBanList;
my $iter = MT::IPBanList->load_iter({ blog_id => $entry->blog_id });
while (my $ban = $iter->()) {
my $banned_ip = $ban->ip;
if ($app->remote_ip =~ /$banned_ip/) {
return $app->handle_error($app->translate(
"You are not allowed to post comments."));
}
}
投稿者 nasake : 2007年05月20日 20:10
トラックバック
このエントリーのトラックバックURL:
http://hoshinoumi-nasake.com/mt-tb.cgi/233
《TBについて》
・TB歓迎です。
・記事に、当サイトへのリンク(言及リンク)は必要ありません。
・送ったのに、すぐに表示されない:
→ 時々、「管理人の承認待ち」状態になってしまうことがあります。
発見次第、表示させますので、暫くお待ち下さい。
・文字化けする:
→ 発見次第、修正して表示させますので、暫くお待ち下さい。
コメントがあれば、お願いします