ブラウザからのトラックバックスパム対応
2004.08.06 Friday 21:04
blog.bulknews.net : Trackback の脆弱性についての勧告
私がiBlogでBlogを書いていたときに、手動トラックバックフォームというのを設置していました。
当時はトラックバックというのがまだ一般的ではなかったせいか、そのフォームを悪用する方はいらっしゃいませんでした。
最近、コメントスパムやトラックバックスパムという、不正な通知方法が現れ、悪用する輩が増えてきたため、便利な機能を制限せざるをえない状況となっています。
私が設置した手動トラックバックフォームとJavascriptを組み合わせることにより、複数のエントリに対し、大量のトラックバックを送信することが可能でしたので、その対策方法を具体的に宮川さんは上のエントリで記載されています。
ソースコードが私の手元にある、プチトラとsbでも同様の脆弱性がありましたので、対策コードを続きで紹介します。
(どちらも最新版では反映されていますので、最新版をお持ちの方は、これらの対策は不要です)
私がiBlogでBlogを書いていたときに、手動トラックバックフォームというのを設置していました。
当時はトラックバックというのがまだ一般的ではなかったせいか、そのフォームを悪用する方はいらっしゃいませんでした。
最近、コメントスパムやトラックバックスパムという、不正な通知方法が現れ、悪用する輩が増えてきたため、便利な機能を制限せざるをえない状況となっています。
私が設置した手動トラックバックフォームとJavascriptを組み合わせることにより、複数のエントリに対し、大量のトラックバックを送信することが可能でしたので、その対策方法を具体的に宮川さんは上のエントリで記載されています。
ソースコードが私の手元にある、プチトラとsbでも同様の脆弱性がありましたので、対策コードを続きで紹介します。
(どちらも最新版では反映されていますので、最新版をお持ちの方は、これらの対策は不要です)
(追記)リンク元と同じように2点の対応をしています。
・トラックバックに Referer がついた トラックバックPingを無視する。
・トラックバックの User-Agent に 'Mozilla/.*' が含まれたものを拒否する。
まず、プチトラ
tb.cgiの76行目に+を追加
続いて、sb(エントリアップ後修正しています)
lib/sbres.plの50行目に+の行を追加
トラックバックの出力結果をだす関数を用意していれば簡単に対応できますので、作成者はぜひ処理追加をお願いします。
追記:最初の3点のトラックバックはすべて私が行いました。
「トラックバックのテストです。」はプチトラから、
「テスト」はHaloScanからトラックバックしました。
「Blog移転」はMT2.661からトラックバックしました。
今回の修正はUnderDone Blog2(閉鎖予定)の各エントリにあります、手動トラックバックフォームの内容を修正して、トラックバックスパムを送った場合の対策です。
・トラックバックに Referer がついた トラックバックPingを無視する。
・トラックバックの User-Agent に 'Mozilla/.*' が含まれたものを拒否する。
まず、プチトラ
tb.cgiの76行目に+を追加
$i->{timestamp} = time;
respond_exit("No URL (url)") unless $i->{url};
+ if ($ENV{'HTTP_REFERER'} or
+ ($ENV{'HTTP_USER_AGENT'} || '') =~ m!^Mozilla/!) {
+ respond_exit("Trackback ping with invalid headers: denied.");
+ }
my $data = load_data($tb_id);
続いて、sb(エントリアップ後修正しています)
lib/sbres.plの50行目に+の行を追加
die('The ping is denied.' . "\n") if ( !&sbres_check_ip($addr) );
+ die('The ping is denied.' . "\n") if ( $refe or ($agnt || '') =~ m!^Mozilla/!);
die('The ping has already received.' . "\n") if ( !&sbres_check_redundancy($eid,'tb',$body,$url) );
トラックバックの出力結果をだす関数を用意していれば簡単に対応できますので、作成者はぜひ処理追加をお願いします。
追記:最初の3点のトラックバックはすべて私が行いました。
「トラックバックのテストです。」はプチトラから、
「テスト」はHaloScanからトラックバックしました。
「Blog移転」はMT2.661からトラックバックしました。
今回の修正はUnderDone Blog2(閉鎖予定)の各エントリにあります、手動トラックバックフォームの内容を修正して、トラックバックスパムを送った場合の対策です。

Comments
はっしー、モモンゴメール念写鬼謀。
Comment Form