in between days

表参道で働くシニアのブログ

はてなダイアリーとはてなグループのスパム対策

コメント欄への連日の懇願に対して驚くべきことに社長自らが

jkondo『了解です。検討します。』
http://d.hatena.ne.jp/hatenadiary/20070406#c1175962258

と応じたはてなグループへのスパム対策が、先日ようやく実装されました。

この画像確認(CAPTCH)機能をはじめとして、はてなダイアリーやはてなグループ日記の設定ページを見ると、コメントやトラックバックを拒否したりスパム対策と銘打たれた設定項目がいくつもあって、いったいどれがどんな機能を持っているのかよくわからないかたもいるかもしれません。というか、はてな歴の長い私も実のところちょっと混乱しているのです。

そこで、はてなダイアリーやはてなグループのコメント・トラックバック拒否(スパム対策)ではどんな方法が実装されているのかをまとめてみました。
なお、はてなでは同じ日記システムなのにダイアリーとグループではなぜだか違うエンジンが使われており、一方に実装されている機能が他方には無かったりします。ごくまれにグループだけに実装される機能もありますが、スパム対策/コメント・トラックバック拒否については、はてなダイアリーが常に先んじているので、ここではダイアリーの機能を基本としました。

また、ここではあくまで「はてな外部」からの迷惑コメントやトラックバックスパムに対抗する手段を考えます。つまり「コメント許可」でコメント許可範囲(ゲストコメントを許可するかどうか)を設定できますが、これを「ゲスト」に設定したままでスパムを減らす機能ということです。

はてなダイアリーのスパム対策/コメント・トラックバック拒否機能

はてな外部からはてなダイアリーに付けられるコメントやトラックバックを拒否するには、次の6つの機能があります。このうち設定項目については、いずれもダイアリーの管理ツールの「日記の設定」>「コメント・トラックバック設定」ページで設定します。

  1. 「コメント設定」欄の「コメント拒否IPアドレス」
  2. 「トラックバック設定」欄の「トラックバック拒否ドメイン」
  3. 「スパム設定」欄の「他ユーザーの設定によるトラックバック拒否」
  4. DNSBLによる送信元判定や独自アルゴリズムによるコメント・トラックバックのブロック
  5. ゲストコメントに対するCAPTCHA(画像確認)機能
  6. 日記の編集ページの「コメントを削除する」ボタンに付随する「スパムコメントとして報告する」チェックボックス

実際には、4.と5.はともに「スパム設定」欄の「スパムコメント・トラックバックの拒否」によって有効になる機能ですが、機能内容や実装時期が大きく違うことから説明の便宜上、違う機能としています。

それぞれの詳細は、次のヘルプや次項の実装時のダイアリーの説明を参照してください。

6つもあったというのはちょっと驚きました。こうして見ると、コメントを拒否するための仕組みのほうが多いですね。総合的な4.を除くと、トラックバック専門の拒否設定は2.と3.がありますが、3.については他のユーザーのトラックバック拒否ドメイン(2.の設定)も参照するということなので、設定内容としては同じモノということもできるかもしれません。

はてなダイアリーとグループにそれぞれいつ導入されたか

次に上記の6つの機能が、どのような順でダイアリーやグループに導入されたかを振り返ってみましょう。はてなダイアリーの日記やはてなグループの日記での実装告知を、実装された順に一覧表にしました。

スパム対策機能 はてなダイアリーへの実装 はてなグループへの実装
コメント拒否IPアドレス d:id:hatenadiary:20050819:1124445585 未実装(idea:5418
DNSBLなどによるブロック d:id:hatenadiary:20060623:1151031819 g:hatena:id:hatenagroup:20060804:1154655608
トラックバック拒否ドメイン d:id:hatenadiary:20060919:1158660744 未実装
他ユーザーの設定によるトラックバック拒否 d:id:hatenadiary:20061027:1161927711 未実装
スパムコメント報告 d:id:hatenadiary:20070216:1171631263 未実装(idea:14060
ゲストコメントへのCAPTCHA d:id:hatenadiary:20070301:1172694210 g:hatena:id:hatenagroup:20070411:1176280321

このようにはてなグループでは、けっきょく「スパムコメント・トラックバックの拒否」チェックボックスをオンにしたときに有効になる2つの機能のみが実装されています。もっとも、はてなアイディア上では「コメント拒否IPアドレス」(idea:4945)も「スパムコメント報告(idea:14060)も、なにか勘違いによる処理ミスで「実装済」ということにされてしまっているのがかなりガッカリなわけですが(はてなグループへのトラックバック拒否ドメイン機能の実装はアイディアが出てないようで探せませんでした。出てたらおしえてください)。