b2evoでの「Trackback の脆弱性」対策案
blog.bulknews.net で Trackback の脆弱性についての勧告 という記事が出ています。
悪意のあるスパマーは、ウェブサイトのビジターのマシンから javascript を使って Trackback Ping SPAM を送らせることができる (DDoS 的であると言える)。
詳細は当該記事でご確認ください。
ところで、この情報は英語圏には(というか、非日本語圏には)伝わっているのでしょうか。日本語圏でだけ対策されても、欧米発祥のblogツールが多くありますから問題が残りそうです。
などと言いつつ、私はちゃんと英訳できる自信がないので報告しない横着者です。申し訳ない。
記事で示されている「考えられるソリューション 3,4」のパッチの b2evolution 版を作ってみました。
完全なものとは言えないかもしれませんが、試案ということでご理解ください。問題がありましたら、お報せいただけると助かります。
/htsrv/trackback.php
の33行目、
@header('Content-Type: text/xml');
の後に
if ( isset($_SERVER['HTTP_REFERER']) || strpos($_SERVER['HTTP_USER_AGENT'], 'Mozilla/') === 0 ) {
trackback_response(1, 'Trackback ping with invalid headers: denied.');
}
という3行を追加してください。
その後、8月11日に Trackback の脆弱性についての勧告 は更新され、上記拙作パッチ案の元に当たるMovable Typeとblosxomのパッチが削除されました。一部ツール等からのトラックバックを受け付けなくなる副作用を考慮した模様です。 拙作パッチ案を使用される場合は、副作用があることを考慮の上で使用するかどうかを判断されるようお願いします。 また、対策の改良案として リファラつきの Trackback に確認画面 が提示されています。副作用の少ない対処法をお探しの方は、ご覧になってみてください。 私のほうで、この方式のb2evolution版を作る予定は今のところありません。Apacheのmod_rewriteが必須になっているため、動作しない環境も多いと思いますので、そのまま移植するのはちょっと気が乗りません。(類似の効能があって、汎用性の高い方法を考えればいいのでしょうけど、知識とか気力とかが足りません)