March 07, 2004
スパムコメント対策
最近、ちょくちょく英語のスパムコメントが投稿されるようになったので、あわててスパムコメント対策を導入しました。
いろいろ調べてみましたが、下記の女子十二月号さんの方法が一番わかりやすかったので、それに従いました。
女子十二月号さん、とっても親切なご説明、ありがとうございます。
MovableTypeコメントスパム対策(女子十二月号)
対策法は、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はその変数に値を入れることができないため書き込むことができないということのようです。
CGIのファイルにも書き込むということで、ちょっとどきどきもんでしたが、、、
一応、ここにも自分のためにメモ。。
追加は、投稿者 atasinti : March 7, 2004 02:16 PM | トラックバック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);
}
コメントの書き込みテスト、その1
コメントの書き込みテスト、その2