diary

MovableType の Comment Spam と闘う

without comments

MovableType を 3.3 にバージョンアップしてから、しばらくは MovableType の Keyword Filter Plugin が Comment Spam を排除していてくれたのですが、しばらくすると、そんなのお構いなしにひっきりなしに来るようになりました。誠に腹立たしい

なので、バージョンアップする前に「MT Comment Spam と闘う (2)」で紹介されていた対策を、あめがんの筆者と共に再度導入してみました。おかげで、今のところ Comment Spam の被害はやんでいます。よかったよかった。詳細は以下を参照してください。

[Comment Spam 対策 for MovableType 3.3]

(1). MovableType の管理画面から、「TEMPLATE」を選び、コメント記入欄のあるテンプレート、「Individual Entry Archive」を開きます。

(2). テンプレートの中から、<form method=”post” …. name=”comments_form”> の部分を探し、そこに以下の太字の部分を書き加えます。これで、コメントの Submit 時に、“antispam”=”goaway” というパラメタが追加されます。


<form method="post" action="<$MTCGIPath$><$MTCommentScript$>" name="comments_form" onsubmit="this.antispam.value='goaway';if (this.bakecookie.checked) rememberMe(this)">
<input type="hidden" name="antispam" value="1" />
<input type="hidden" name="static" value="1" />
<input type="hidden" name="entry_id" value="<$MTEntryID$>" />

(3). MovableType にコードを追加して、上記のパラメタが設定されているかをチェックし、設定されていなかったらエラーページを表示するようにします。lib/MT/App/Comments.pm ファイルを開いて、post 関数の先頭に、太字の部分を書き加えます。

sub post {
my $app = shift;
my $q = $app->{query};
return $app->error($app->translate("Invalid request"))
if $q->param('antispam') ne 'goaway';
return $app->error($app->translate("Invalid request"))
if $app->request_method() ne 'POST';

パラメタ名と値は、別にこのとおりである必要はありません。好きな名前と値をぶちこんでください。

Written by Kei

December 16th, 2006 at 11:34 am

Posted in Tech

Leave a Reply