記事本文
数日間の流れを一記事に凝縮
これだけの流れを一日のうちに行ったわけではありませんが、一連の内容として一つの記事内に収めることにします。
トラックバックスパムの予兆 ?
先ほど、 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 ( 日本語訳 ) に基づき、オリジナルの所在と改変内容を次に明記し、改変したものをソースコードの形で示します。
- オリジナル
- 改変内容
-
- トラックバックスパム対策(その2): 小粋空間の記述を用いて tbping_title の文字列もフィルタの対象とするようにする。
- ソースコード
-
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 ソースとしては大きく異なります。
- $ を $ 、 > を > として記述
- 削除部分を <del> 、追記部分を <ins> でマークアップ
前者は「よりベターな書き方」という感じなので、必ずしもこう書かなければいけない、というわけではありません。 > を > ( または > ) とするのはよく聞きますが、 $ を必ず $ とする必要はありませんし。 ( ただし、記事内に Movable Type のテンプレートタグの記述をする際は、本来のテンプレートタグとバッティングする可能性があるので、 Movable Type ユーザーは癖付けておくと良いかもしれません。 )
後者の場合は、よほど <font> や <s> を使わなければならない事情が無い限りは <del> や <ins> でマークアップした方が良いでしょう。
実際、私が小粋空間のコードを見た時はたまたまページの色指定を無効化していたため、訂正部分が分からなくなってしまっていました。
<del> や <ins> でマークアップしている場合は、ブラウザが適宜 ( 視覚系、音声系などのブラウザの形式によらず ) 扱ってくれるため、色などによる指定より分かりやすくなります。
( ただし、 XHTML1.1 では pre は ins / del を内容に持てないため、 XHTML 1.1 で <pre> でソースコードをマークアップする人は、訂正部分は <em> や <span> で代用することになります。 )

