ここ数日、海外URLからのスパムトラックバックがまた激しくなってきました。スタッフに連絡に寄せられgooのスパムフィルタに追加されるスパムトラックバックの数も、尋常ではないことでしょう。
そこで提案があります。gooブログのスパムトラックバックの処理方法やスパムトラックバック通報数を削減するための改善案です。
現在のスパムトラックバック処理の問題点
現在のgooブログは、gooのスパムフィルタに登録されているURLからのトラックバックPingのHTTP POST Requestを受信すると、生真面目にエラーのHTTP Responseを返してしまいます。
スパムトラックバックに対するレスポンスの例 |
---|
<?xml version="1.0" encoding="EUC-JP"?> <response> <error>1</error> ←0以外はエラーという意味 <message>要求されたURLはスパムフィルタに登録されているため、トラックバックを拒否しました。</message> </response> |
つまり、上記の例のようにトラックバック受信を拒否してしまうのです。
相手がまともな人間だけならこのレスポンスは「素直でよろしい」のですが、相手がスパマー(まともではない人間や機械)だと困りもんです。
「おっ、このURLも拒否されたか。じゃぁ、違うURLで送り直そう」となり、異なるURLのスパムを送ってくるためのヒントになってしまうのです。
# 当然ならが、エラー判定も再送信も自動的にできるのですから
これでは、いつまで経ってもスパムは減りません。
スパムトラックバック処理の改善案
それでは、どうすればよいのでしょうか。
簡単なのは、スパムトラックバックであっても受信だけは許可するのです。つまり、スパムURLからのHTTP POST Requestであっても、受信成功のHTTP Responseを返すのです。
レスポンス改善案の例 |
---|
<?xml version="1.0" encoding="EUC-JP"?> <response> <error>0</error> ←受信は成功という意味 <message>トラックバックを受信しました。通知URLへのリンクは承認後に生成します。</message> </response> |
そして、通知されたURLがgooのスパムフィルタに引っかかった場合は、gooが承認しないため受信したトラックバックが記事のトラックバック欄には表示されず通知URLへのリンクも生成しません。
そして、「あなたのBLOGにスパムトラックバックが送られました!」というお知らせメールを、ブログオーナに送れば良いでしょう。
# 内容はトラックバックのお知らせメールとほぼ一緒で、ブログオーナが「スパムじゃない」申請(処理)ができればよい
そして通常のトラックバックも、後述のトラックバック承認制の場合は、同様の処理をすればいいのです。
# 承認制でも「あなたのBLOGにトラックバックが送られました!」のメールはくださいね
これで、スパムトラックバック対策はかなり改善されると思います。何故なら、スパム判定されたかどうかがスパマーには直ぐには分からないからです。
しかし、ちょっとだけ問題があります。それは、TrackbackPingURL?__mode=rssで受信トラックバックの一覧が表示されてしまうからです。
__mode=rssのオプションを廃止して欲しい
トラックバックの__mode=rssのオプションはどういうものかというと、「スタッフに連絡」を活用しようの記事のTrackbackPingURL?__mode=rssを開いてもらうのが分かりやすいでしょうか。
何と__mode=rssのオプションがサポートされていると、トラックバックのURLさえ分かれば、記事のタイトル、記事のURL、受信したトラックバックの一覧などが表示(取得)できてしまうのです。
これも相手がまともな人間だけなら「素直でよろしい」のですが、相手がスパマーなら「ちっ、トラックバックが拒否されたよ」と思われたり、スパムであることを偽装するための揮発性リンク(すぐに消えるリンク)を生成するためのヒントになってしまうのです。
折角gooブログはトラックバックPing URLだけからは記事のURLが分からない実装になっているのに、何ともったいないことでしょうか。
そこで提案です。ここは思い切って、__mode=rssのオプションを廃止しましょう。別にこのオプションは、トラックバックの仕様上必須ではないのですから。
# 実際、__mode=rssのオプションをサポートしていないブログはあります
記事毎にトラックバックの受信設定ができるといいかも
これは微妙なのですが、一応提案しておきます。
# これ以外の案が全て採用されれば、いらないかな
現在は、トラックバックの設定(受信する・受信しない)がブログ全体でしかできません。これを、記事単位に設定できるようにするというものです。
# コメント設定のように、そして後述の承認制を含めて
というのも、スパムトラックバックが送られてくる記事が、結構限定されているからなのです。
スパムトラックバックをよく受信する記事は、「(1)現在時刻で投稿し更新Pingを送信した記事」と、「(2)特定の過去の記事」だからです。
(1)の新着記事狙いスパムに関しては、記事の投稿時刻をわざと5分程度過去にしてから投稿(更新Pingを送信)することで自衛できます。
# 新着記事狙いスパムに対するこのブログの防御率はほぼ100%です
(2)に関しては、特定少数の記事にしかスパムが来ないのですから、その記事だけトラックバックを受信しない設定にできれば、ブログオーナがスパムトラックバック通報する数が減るのではないでしょうか?
トラックバックの承認制をサポートして欲しい
トラックバックステータスを改造することになり影響範囲が大きいのですが、非常に切実なので敢えて提案しておきます。
現在のブログ情報では、トラックバックの設定が、「受け取る」と「受け取らない」のどちらかしか選択できません。これに「承認制(受け取り承認後表示する)」を追加してほしいのです。
つまり、トラックバックに「承認(表示)」と「未承認(非表示)」のステータスを追加して、トラックバック設定が「承認後表示」となっている場合は、gooブログが受信した時点ではそのトラックバックのステータスを「未承認(非表示)」にします。
そして記事のトラックバック一覧で、ブログオーナがトラックバック毎に「承認(表示)⇔未承認(非表示)」のステータスを変更できるようにしておくのです。
# 「未承認(非表示)」が「削除」ではないところがミソ
これなら、ブログオーナが「これはスパムじゃないな」と判断したものだけが表示されますし、グレーゾーンのトラックバックは何時でもステータスを変更できます。
# 非表示→表示でも、表示→非表示でも
勿論、そんなに手間をかけたくないというブログオーナのために、トラックバック設定が「受け取る」の場合は今まで通りトラックバック受信時に「承認(表示)」としてしまえばいいのですし、既存の受信済みトラックバック(ステータスなし)も「承認(表示)」扱いすれば互換性留意事項もない訳です。
結局なに?
そして、ここまで読んでいただければ明らかですが、「トラックバックの承認制」は先の「スパムトラックバック処理の改善」と同時にサポートするのがよい思います。何故なら「gooが未承認」としたトラックバックは、トラックバック設定が「受け取る」であってもステータスを「未承認(非表示)」にすればよいのですから。
まぁ、gooブログのスパムフィルタの威力が分かってしまうのでまずい(わは)とか、goo未承認トラックバックの数が莫大で「未承認(非表示)」で登録するとgooブログの負荷が高くなるとか、同じく数が多すぎてブログオーナに迷惑が掛かるとか、もしも好ましくない状況になるのが予測できる場合は、「gooが未承認」の場合は一旦受信したスパムトラックバックを今まで通り「gooが削除」してもよいのですけどね。
# gooメールのスパムフィルタは、威力が凄いのを実感します
現状では、ブログオーナにスパムを防ぐ手段は殆どないのです。gooブログの中の人も大変だとは思いますが、我々もスパム対策には協力いたしますので是非ご検討ください。
なお、この連休中はトラックバック受信を一時的に停止して、暫く様子見ます。
スタッフに連絡 - goo ブログ
トラックバックスパム・pingスパム制限強化について - gooブログ スタッフブログ 2005年09月16日11:30
「スタッフに連絡」を活用しよう 2006年01月15日00:54
Trackback Ping-URLと記事のURL 2006年01月07日00:12
暫く様子見ます 2006年03月24日23:35
その後
ここからは、提案後のフォローです。詳細はリンク先の記事をご覧ください。
- 2006年05月29日
トラックバックに「公開」と「保留」のステータスを追加する形で、トラックバック承認制のサポートが採用されました。
同時に、コメント承認制も追加導入されました。
コメントとトラックバック承認制の機能追加 2006年05月29日23:45