トラックバックスパムの対策を講じてみた

http://hxxk.jp/2005/02/22/0054

記事データ

投稿者

望月真琴

投稿日時

2005-02-22T00:54+09:00

タグ
概要

トラックバックスパムが来たため、トラックバックスパム対策プラグインをメモ。また、小粋空間の記述を用いてプラグインをカスタマイズしました。

リプライ

リプライはまだありません。

記事本文

数日間の流れを一記事に凝縮

これだけの流れを一日のうちに行ったわけではありませんが、一連の内容として一つの記事内に収めることにします。

  1. トラックバックスパムの予兆 ?
  2. トラックバックスパム対策メモ
  3. Quasi-Spam Filter Plugin にフィルタ対象を加える
  4. トラックバックスパム対策(その2): 小粋空間の記述との違い
  5. トラックバック送信先

トラックバックスパムの予兆 ?

先ほど、 weblog という言葉に対してスパムと思われるトラックバックが行われました。 残しておいても意味は無いので削除しましたが、以下その内容を自分的にメモ。

tbping_id

104

tbping_blog_id

1

tbping_tb_id

2

tbping_title

texas hold'em

tbping_excerpt

Every possible idea therefore may be said to be us...

tbping_source_url

http://www.tigerspice.com

tbping_ip

63.96.247.20

tbping_blog_name

texas hold'em

tbping_created_on

2005-02-20 20:39:59

tbping_modified_on

20050220203959

tbping_created_by

NULL

tbping_modified_by

NULL

トラックバックスパム対策メモ

今回はこの 1 件のみだったので手動削除で良かったのですが、いずれ大量のトラックバックスパムに悩まされるかもしれません。 と、この部分までを数日前に書いていたら、続々とトラックバックスパムが届き出しました。 スパムが届き出してからようやく重い腰を上げた形になりますが、トラックバックスパム対策をメモしておこうと思います。

mt-tb.cgi 自体の書き換え

Movable Type カスタマイズあれこれ - コメントスパム対策その 1 と同じ発想の対策です。 mt-tb.cgi を直接書き換えるため、 Movable Type 自体のアップグレード時に再度書き換える必要が生じる可能性があります。

プラグインの使用

トラックバックスパムのみならずコメントスパムにも対応したプラグインです。 半角英数字のみのコメントスパムを弾くプラグイン - Trackbacks にて (o) さん ( Ogawa::Memoranda ) 自ら教えてくださいました。 ( というか教えていただいたのに使っていなかったのですか自分 )

Movable Type 自体のアップグレード時も、変更を行わなくて良い可能性があります。 ( もちろん Movable Type 自体に大幅な改変があればこの限りではありませんが。 )

Quasi-Spam Filter Plugin にフィルタ対象を加える

スパム判定ルーチンやリダイレクトURL決定ルーチンの「例」を示すことはあるかもしれませんが、単体のスパムフィルターとしての機能を充実させること自体はこのプラグインの目的ではありません ということなので、フィルタ対象を増やしたい場合は自分でコードを書き換える必要があります。

既に書き換えられたコードがトラックバックスパム対策(その2): 小粋空間で公開されていますが、その提示方法があまり良くない ( コード自体に問題があるわけではないことに注意 ) と感じたので、 「こう提示した方がより良いですよ」 という意味を込めて同様のコードを掲載します。 なお、 The Artistic License ( 日本語訳 ) に基づき、オリジナルの所在と改変内容を次に明記し、改変したものをソースコードの形で示します。

オリジナル
改変内容
ソースコード
sub tbping_filter {
    my ($eh, $app, $ping) = @_;
    return !is_tbping_spam($ping->excerpt);    
    return !(is_tbping_spam($ping->excerpt) | is_tbping_spam($ping->title));
}

sub tbping_throttle_filter {
    my ($eh, $app, $tb) = @_;
    my $q = $app->{query};
    return !is_tbping_spam($q->param('excerpt'));
    return !(is_tbping_spam($q->param('excerpt')) | is_tbping_spam($q->param('title')));
}

sub tbping_error {
    my $app = shift;
    my $q = $app->{query};
    my $mode = $q->param('__mode') || $app->{default_mode};
    return if $mode ne 'ping';
    if (is_tbping_spam($q->param('excerpt'))) {
    if (is_tbping_spam($q->param('excerpt')) || is_tbping_spam($q->param('title'))) {
    $app->add_methods('ping' => sub { });
    $app->_response(Error => 'Spam TBPing!', Code => 403);
    }
}

トラックバックスパム対策(その2): 小粋空間の記述との違い

ブラウザに表示されるコードとしては、ここで掲載したものと小粋空間での記述は同じですが、 HTML ソースとしては大きく異なります。

前者は「よりベターな書き方」という感じなので、必ずしもこう書かなければいけない、というわけではありません。 > を > ( または > ) とするのはよく聞きますが、 $ を必ず $ とする必要はありませんし。 ( ただし、記事内に Movable Type のテンプレートタグの記述をする際は、本来のテンプレートタグとバッティングする可能性があるので、 Movable Type ユーザーは癖付けておくと良いかもしれません。 )

<font color="blue"> といったマークアップをされると、色指定が無効の場合に意味をなさなくなる 後者の場合は、よほど <font> や <s> を使わなければならない事情が無い限りは <del> や <ins> でマークアップした方が良いでしょう。 実際、私が小粋空間のコードを見た時はたまたまページの色指定を無効化していたため、訂正部分が分からなくなってしまっていました。 <del> や <ins> でマークアップしている場合は、ブラウザが適宜 ( 視覚系、音声系などのブラウザの形式によらず ) 扱ってくれるため、色などによる指定より分かりやすくなります。 ( ただし、 XHTML1.1 では pre は ins / del を内容に持てないため、 XHTML 1.1 で <pre> でソースコードをマークアップする人は、訂正部分は <em> や <span> で代用することになります。 )

トラックバック送信先

リプライ

リプライはまだ送られていないか、管理者の承認待ち状態です。

この記事に対するご意見やご質問、ご感想などありましたらこのフォームに簡潔に記入して下さい。 簡潔に記入できない場合や、関連記事にてご意見をお寄せいただく場合は、ご自身の weblog にて記事を書かれた上で あてにトラックバックとして送信してください。

記入フォーム

補足情報

著作、講演、制作実績など