大手ブログから軒並みトラックバックが出来ない件について

下記のエントリーで
Windows2000でGyaoやYahoo!動画が見れない – 問題回避編 (KUMA TYPE)
http://blog.kumacchi.com/2008/02/windows2000gyaoyahoo.html
黒翼猫さんにトラックバックが出来ないとご指摘を受けました。
大手のブログ全滅ですね。(‘Д`)

いあ、LiveDoorだけじゃなくて、SeesaaからもSakuraからもMaglogからも
トラックバックできなかったような。
(ちゃんと記事内にURLが書かれている状態で)

そういうわけで調査しました。私のブログは現在MovableType 4.2(以降MT)ですが、標準搭載のプラグインのセット「spamlookup」と言及リンクをチェックする「TBPingLinkLookup」プラグインでトラックバックスパムを弾いています。
とりあえず最初にチェックしたのは、ライブドアのブログとFC2のブログからこのブログにトラックバックを行ってみました。結果はFC2からはトラックバックできましたがライブドアからはトラックバックできませんでした。ライブドアからのトラックバックが拒否された理由をログで見てみるとトラックバックを送ってきたサーバーのIPアドレスとブログのドメインのIPアドレスが異なると「SpamLookup – Lookups」がスコア-1.0を返している為でした。スコアが幾つならスパムと判定するかはMTのデフォルトの設定で0より小さいになっています。
そういうわけで、じゃースパム判定を緩やかにして判定値を-1.0まで下げてあげれば良いかなと思い-1.0にしました。スパム判定を緩やかにしたら普通にトラックバックスパムが入ってくるんじゃないかとも思いましたが「TBPingLinkLookup」があるから言及リンクの無いトラックバックは無条件にはじいてくれるだろうと判断してそうしました。
実際にはどうなったかというと、物凄い勢いでトラックバックスパムがチェックをスルーしてブログに表示され始めましたw。
(‘A`)エッ なんで?
と思ったのはいうまでもないのですがw。
何でだろう「TBPingLinkLookup」が機能していないのかなーと思ったのですが、実際に言及リンク無しで最初に試しているのでそれは無いはず。
で、色々調べてみました。下記の例の様にスパム判定されたトラックバックを良く見てみると、「最終レーティング: -1」となっています。「TBPingLinkLookup」と「SpamLookup – Lookups」のチェックにそれぞれ引っ掛かってスコアをそれぞれ-1.0返されてるのに-2.0では無く何故か-1.0。なんでかなーと最初は思っていたのですが
最終レーティング: -1

テスト スコア 結果
TBPingLinkLookup -1.0 Junked Ping without links to your site
SpamLookup – Lookups -1.0 ドメインのIPアドレス「209.63.57.10」と送信元「http://example.com/young-teen-porn-pictures.html」のIPアドレス「205.234.140.219」が合致しません

色々なトラックバックスパムの判定結果を見てみると下記の様なものが有り結局最終レーティングはスコアの加算ではなく平均値であることが判りました。
最終レーティング: -2

テスト スコア 結果
TBPingLinkLookup -1.0 Junked Ping without links to your site
SpamLookup – Lookups -1.0 ドメインのIPアドレス「64.74.142.143」と送信元「ttp://example.com/」のIPアドレス「64.191.50.135」が合致しません
SpamLookup – Keyword Filter -4.0 ‘phentermine’がワードフィルタ一致: ‘phentermine’

つまり、何個チェックに引っ掛かってもスコアが-1.0の場合は平均された-1.0になってしまうのでスパム判定値を-1.0まで引き下げてしまうと、「TBPingLinkLookup」のチェックに引っ掛かってるにもかかわらずスパムと判定されなくなってしまいます。そしてチェックをスルーすることによってトラックバックスパムが普通にトラックバックとしてブログ上に表示され始めました。
ブログにはトラックバックスパムを14日保存するようになっていますが、みてみると1000件以上のスパムが隔離されています。つまり1日80件近いトラックバックスパムがきてるわけで、物凄い勢いでトラックバックスパムがブログ上に表示されるようになってしまったのも当然ですw。
とりあえず14日は長すぎるので7日にしました。結果隔離されているトラックバックスパム数は現在550位になっています。(無駄にデータベースファイルのサイズが大きくなってるのはこれの所為か!?)
なので急いでスパム判定値は初期値である「0」に戻しました。
XG000121.JPG
しかし、このままだと、大手ブログサイトからのトラックバックは全滅だし(ま、それもありか?w)判定基準値を「-1.0」にするとトラックバックスパムまで投稿されちゃうし、どうしたものか?と考えました。
結論としては、平均値であるのならば平均値をあげればいい平均値をあげるにはプラグインが返すスコアをあげてあげればいいということで「TBPingLinkLookup」のソースを見てみると、それらしい部分がありました。

return (-1, “Junked Ping without links to your site”);

で、返すスコアを「-2」に修正して下の様にしました。

return (-2, “Junked Ping without links to your site”);

結果下記の様に最終レーティングが-1.5になる様になったのでスパム判定基準値を「-1.0」にしてもうまくトラックバックスパムを隔離してくれています。これで大手ブログからの言及リンクつきのトラックバックであれば受信することができる様になっているはずです。
最終レーティング: -1.5

テスト スコア 結果
TBPingLinkLookup -2.0 Junked Ping without links to your site
SpamLookup – Lookups -1.0 ドメインのIPアドレス「38.108.177.226」と送信元「http://example.com/forums/incestories」のIPアドレス「69.16.204.251」が合致しません

もう一つの方法として、判断基準値は「0」のままで対応する方法として、「TBPingLinkLookup」プラグインを使うのではなく「BanNoReferTb」を使う方法があります。TBPingLinkLookupは言及リンクのないトラックバックを必ず弾くものだと思い込んでいたのですが、実際にはMTのジャンクフィルター機能を利用(スパムチェック機能)していてスコアを返すようになっているので必ず弾くわけではないということをいまさら認識w。
「BanNoReferTb」はソースをちら見した感じ必ず弾くようです。「BanNoReferTb」は「TBPingLinkLookup」の元になったプログラムでSixApartの宮川氏がジャンクフィルターを使う用に改造したものが「TBPingLinkLookup」だということです。よくわからない場合は「BanNoReferTb」を使うのが良いかもしれませんが、最新のMTでは動かないかも知れませんので要確認です。あと、有無を言わさずに弾くのでMTのトラックバックスパムログに残らないと思います。理解していれば「TBPingLinkLookup」を使った方が無難そうです。
Movable Type で言及リンクのない TrackBack ping を弾くプラグイン – naoyaのはてなダイアリー
http://d.hatena.ne.jp/naoya/20050703/1120389935
同様の件でお困りの方はお試しあれです。

タグ :