« 私の好きな携帯辞書 | メイン | 思ったより安い »

July 28, 2004

スパムコメント対策

コメントスパムが来るようになった。
コメントはできるだけ受け付けたいので、コメント禁止以外の対策を探す。

女子十二月号 という名前のblogにその対策が載っているらしいのだが、なぜかアクセスできず。サーチエンジンのキャッシュを使ってみているとIEが不正終了してしまう。
(ーー;)

試行錯誤してキャッシュを表示させた瞬間にコピペして何とか内容を読む。


以下、引用です。

2004年02月24日
MovableTypeコメントスパム対策
いろいろなblogサイトでComment Spamにやられたとのエントリーが散見されるので、Spamロボットに登録される前に対策を打っておくことにしました。

対策法は、Black ListへIP Addressを登録する方法、コメントを書き込むときにラジオボックスへチェックを入れてもらう方法などいろいろあるみたいですが、私が選択した方法はこれ。

Quoted from Burningbird: Comment Spam Quick Fix
要は、通常あるエントリーを読んだ人がコメントをつけるときは必ずコメント欄を使用して書き込むのですが、Spammerはmt-comments.cgiを直接アクセスして書き込みます。そこでコメント欄にhidden属性の変数を追加して値をmt-comments.cgiに渡し、mt-comments.cgiはその変数が存在するかチェックするようにしておきます。すると、MovableTypeの素のmt-comments.cgiを前提にしているSpammerはその変数に値を入れることができないため書き込むことができないということのようです。
早速コメント欄に変数を書き込みます。
追加は、

Individual Entry Archive
Comment Listing Template
Comment Preview Template
Comment Error Template


の<form>と</form>の間に行います。
入れた値は、


<input type="hidden" name="spammer" value="goaway" />
<input type="hidden" name="spamming" value="gotohell" />


の二つです。二つにしたのは少しは強化できるかと思ったからです。

そしてmt-comments.cgiの"use strict;"文のすぐ下に以下を追加しました。

use CGI qw(:standard);
if ($ENV{'REQUEST_METHOD'} eq "POST") {
my $data = param('spammer');
die unless ($data);
}
use CGI qw(:standard);
if ($ENV{'REQUEST_METHOD'} eq "POST") {
my $data = param('spamming');
die unless ($data);
}


動作確認OKです。


投稿者 mc : 2004年02月24日 17:09 | トラックバック (66)

引用終わり

というわけで、早速テストしてみました。
しかし、これも日本語のわかるspammerがいたら、自分で種明かししているみたいなものですね。spamがまだ来るようだったら、対策は秘密で実施しましょう。

投稿者 kid : July 28, 2004 10:49 AM

トラックバック

このエントリーのトラックバックURL:
http://www.fbody.jp/bin/mt-tb.cgi/211

コメント

コメントしてください




保存しますか?