[ トップページ ]

« 石油価格高騰を機に鉄道による貨物輸送を復興させよ! | メイン | このブログのあるきかた »

Web とインターネット:Movable Type

Movable Type のプログラム変更をともなうスパム対策の第 1 歩

これまで,このブログに対するスパム対策としては Movable Type の設定をかえることで対処してきましたが,1 日に数 1000 のスパムをあびることもあり,ついにプログラムの変更をともなう対策にのりだしました. 第 1 歩としてはコメント投稿フォームのなかにかくされたフィールドをもうけて検査するという単純な方法をとってみました.

これまで,スパムの分析や対策を 「ブログへの最近のスパム数」,「このブログへのスパムの急増」,「スパムのさらなる増加と対策」,「つづく,ブログへのスパムとのたたかい」,「すぎさったブログへのコメント・スパムの嵐」 などの項目に書いてきました. これらでとった対策は Movable Type の設定を変更したり,スパム・フィルタのパターンを追加したりすることでした. 「すぎさったブログへのコメント・スパムの嵐」 という項目では,とりあえず嵐が去ったことを書きましたが,嵐はその後もたびたびやってきます. 最近では 1 日に数 1000 もフィルタできないスパムがおしよせることもあり,ついにプログラム変更をともなう対策にのりだしました.

Movable Type をつかったブログ・サイトのなかには,スパムをさけるために,4~8 桁くらいの数値を画像で表示させて,それを投稿者によみとらせる方法をとっているところもあります. しかし,この方法は投稿者の負担をふやすうえ,サーバの負荷も多少ですがあがります. まずはもっと単純な方法をためしてみようとおもいました.

そこでとった方法は,コメント投稿フォームのなかに 2 つのかくしフィールドをいれて,それらがふくむ値が一致するかどうかをみるという方法でした. つまり,「エントリー・アーカイブ」 のテンプレートをかきかえて,つぎのようなフィールドをいれます.

<input id="comment-bake-cookie" type="hidden" value="?" />
<input id="??" type="hidden" value="?" />

ここで ?, ?? のところには適当な数値や文字列をうめこみます. comment-bake-cookie というフィールドはもともとあったものですが,不要なので流用しました. 既存のフィールドを使用したのは互換性をとるためでもあります. 私のばあい,すでに多数の “ブログ” をつくっているので,いきなり互換性のない方法はとれないとかんがえたからです.

互換性があるということのひとつの意味は,このかきかえをおこなっても従来のプログラムがそのまま動作するということです. したがって,まずはこの状態でコメント投稿のテストをして,うまくいったところで,つぎにプログラムをかきかえます. かきかえるべきプログラムは Movable Type の lib/MT/App/Comments.pm のなかのつぎの部分です. 赤字のところが追加した部分です.

    my $text = $q->param('text') || '';
    $text =~ s/^\s+|\s+$//g;
    if ($text eq '') {
       return $app->handle_error($app->translate("Comment text is required."));
    }

    # Spam protection
    my $spam_cookie = $q->param('comment-bake-cookie');
    if ($spam_cookie ne '1' && $spam_cookie ne $q->param('??')) {
       return $app->handle_error($app->translate("Invalid form."));
    }

    my ($comment, $commenter) = _make_comment($app, $entry);
    my $remember = $q->param('bakecookie') || 0;
    $remember = 0 if $remember eq 'Forget Info'; # another value for '0'

従来との互換性を重視したため,この方法ではスパムの内容によってはフィルタすることができません. それにしてもどうも期待したとおりにはうごかないようなので,なにか,みおとしているのかもしれません. しかし,すくなくとも,いまのところ,うけつけられるスパムはかなりへっています. しばらくはこれで様子をみて,必要ならまた対策をとりたいとおもっています.

キーワード:

トラックバック

このエントリーのトラックバックURL:
http://www.kanadas.com/mt/mt-tb.cgi/2549

コメントを投稿

このページについて

2008-06-08 08:06 に投稿されたエントリーのページです.

ひとつ前の投稿は「石油価格高騰を機に鉄道による貨物輸送を復興させよ!」です.

次の投稿は「このブログのあるきかた」です.

他にも多くのエントリーがあります.メインページアーカイブページも見てください.

Creative Commons License
このブログはつぎのライセンスで保護されています. クリエイティブ・コモンズ・ライセンス.
Powered by
Movable Type 3.36