![](https://blogimg.goo.ne.jp/user_image/44/09/8a89ce612b0343edaa889a32697ecaaf.png)
ここ数日、海外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
gooをご利用ありがとうございます。
スパム対策は難しいですが技術者として、ご利用の皆様のお役に立てる非常にやりがいのある部分です。
今後もブログスタッフともども頑張ります。
これからもgooをよろしくお願いしますね。
というか、gooメールのスパム対策の方はかなり強力で、スパムメールはほぼ「迷惑メール」フォルダに放り込んでくれている気がします。
>スパム対策は難しいですが技術者として、ご利用の皆様のお役に立てる非常にやりがいのある部分です。
>今後もブログスタッフともども頑張ります。
確かに技術者としては、そうですよね。
しかしスパムの送り手も【人としては最低】ですが残念ながらそれほど馬鹿でもないので、gooのスパムフィルタ精度向上にも限界があると思うのです。
# 99%にはなっても、100%にはならない
ということで、ブログオーナが「これはいいことにしよう」とおもったものを「承認(表示)」するのが最後の手段かなと。
ただし、完全にノーガードの状態でトラックバックを受け付けて、全てに目を通してから「承認(表示)」するのは大変なので、今まで通りgooのスパムフィルタにも活躍して欲しいのは事実です。
(1) goo未承認状態(非表示、ブログ設定でgoo未承認トラックバックを削除しないとした場合)
(2) オーナ未承認状態(非表示、ブログ設定でトラックバックを承認制とした場合でgoo承認のトラックバック)
(3) 承認状態(表示、含む既存のトラックバック)
記事では二つの状態(承認・未承認)しか考えていませんが、本当はこんなステータスがいいのかも知れませんね。
オーナは、(1)→(2)、(1)→(3)、(3)→(2)、の状態変更ができる。
オーナは、どの状態のトラックバックも削除できる。
それから、記事にも書きましたが、gooのスパムフィルタに引っかかるトラックバックの数が凄い場合は、ブログ設定によらず(1)は常時削除してくれた方が良いのかも知れませんが。
# しかもこんな時間帯に!
これは、トラックバックの削除時に(スパム報告の他に削除欄にもチェックが入っている場合)は、「スタッフに連絡」の「スパムトラックバック」を自動的に行ってくれるというもの。
現在、編集画面からは「スタッフに連絡」に1クリックで遷移できないし、正直スパム処置にそんなに労力は割きたくない。
スパムトラックバックの報告には、スパムの送信URL、受信記事URL、理由の3項目しかないのだから、理由に「編集画面で選択」と自動入力すれば、スパム報告も自動的に出来る。
「理由だけはどうしても手動入力しなさい」ということであれば、「スパム報告」をチェックすると、スパムの送信URL、受信記事URLが入力された状態で「スパムトラックバック・スパムコメントについて」のフォームを開いてくれるだけでも、今よりはずっと良い。
今度の機能追加でこの記事にあることを実現してくれるとすごく嬉しいなぁ。
あとは、編集画面にある最近10件の「コメント・トラックバック」からも、当該記事のコメント一覧・トラックバック一覧画面(状態変更画面)に遷移できるし、コメント一覧⇔トラックバック一覧の遷移もできる。
# 今回の機能実装で、随分と使いやすくなったなぁ
でも、トラックバックを保留した場合に、編集画面がおかしくなる…。コメントは保留しても大丈夫なんだけどなぁ。
ちょっと調べてから記事にするか。
大部分のユーザーさんは歓迎でしょうね。
承認制以外の提案は、「ユニーク過ぎてスキップ」ってことろでしょうか(わは)。
何はともあれ、今回の機能追加で困るユーザは存在しない訳です。
めでたしめでたし?