ブラウザからのトラックバックスパム対応

blog.bulknews.net : Trackback の脆弱性についての勧告

私がiBlogでBlogを書いていたときに、手動トラックバックフォームというのを設置していました。
当時はトラックバックというのがまだ一般的ではなかったせいか、そのフォームを悪用する方はいらっしゃいませんでした。

最近、コメントスパムやトラックバックスパムという、不正な通知方法が現れ、悪用する輩が増えてきたため、便利な機能を制限せざるをえない状況となっています。

私が設置した手動トラックバックフォームとJavascriptを組み合わせることにより、複数のエントリに対し、大量のトラックバックを送信することが可能でしたので、その対策方法を具体的に宮川さんは上のエントリで記載されています。

ソースコードが私の手元にある、プチトラとsbでも同様の脆弱性がありましたので、対策コードを続きで紹介します。

(どちらも最新版では反映されていますので、最新版をお持ちの方は、これらの対策は不要です)
(追記)リンク元と同じように2点の対応をしています。
・トラックバックに 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(閉鎖予定)の各エントリにあります、手動トラックバックフォームの内容を修正して、トラックバックスパムを送った場合の対策です。
Blog関係 : comments (1) : trackbacks (1) ブックマークに追加する

Comments

やっぱ、perlの方が対応先に作れるかも
はっしー、モモンゴメール念写鬼謀。
by : 酢鶏 ... 2004/08/15 01:23 PM

Comment Form

  

Trackbacks

Trackback url :
blog.bulknews.net : Trackback の脆弱性についての勧告いつのまにやら対応方法が変わっています。というのは、ぶろっぐぴんぴんや、ブラウザからの正当なトラックバック(Blosxomのプラグインからのトラックバック)が...
by UnderDone(あんでるどん) ... 2004/08/16 07:21 PM
なかのひと
SiteSearch Google
Google
Web
underdone.net
blog.underdone.net
Blog Pet
Amazon
Categories
Profile
Other
  • Blog Ranking
  • RSS feed meter for http://blog.underdone.net/