以前、comment keyによるspam排除について書いた。
実際に、本blogのtrackbackに実装してみた。
本blogのトラックバックIDはとても長いと思う。それは、最初の6桁がgmdate("dmy")の値となっているから。
これがcomment keyになっている。日付をつかっているので、IDは毎日かわる。 検索エンジンが持って行くコンテンツでは、このIDがクロールした日あるいは、キャッシュを生成した日になる。trackbackのこの6桁とその時間のkeyを比較して、違う場合は受け取らない。
制限事項として、キャッシュをユーザに見せた場合、comment keyが異なる可能性があって、トラックバックを受け取れないことがあるということか。このキーは一日一回しか変わらないんで、毎日キャッシュを生成しなおせば、問題ない。
コードを改変してから8時間で、かなりの数のcomment spamを門前払いできているようだ。
これは、google やyahooの検索結果をつかって、trackback spamを送っていると云うことであり、google や yahooの結果と実際のtrackback IDが違うようにすることで、効果を十分に上げられるという証拠になっている。
変更点は、また明日に。
google検索結果の http://www.google.com/search?hs=MZd&hl=ja&newwindow=1&client=firefox&rls=org.mozilla%3Aja%3Aunofficial&q=site%3Ablogs.da-cha.jp+trackback.php&btnG=Google+%E6%A4%9C%E7%B4%A2&lr= にあるトラックバックIDをみると、このハックの効果がよく分かる。
すべて直接本サイトを参照して取得できるIDとは異なるIDが見えることになる。
検索エンジンから取得したトラックバックURLからは受け付けないというのは、サイトをみてトラックバックをするという仕掛けを考えると、feasibleなような気がする。