ブログのスパムを撃退する

2006年12月15日(金) 12時26分 by level
B ?

えむもじらでの、コメントとトラックバックにおけるスパムの集計結果の紹介です。7月に本格的になスパム排除対策を施してから抜群の成績を収めているので、その手法も含めて公開してみます。集計期間は7月27日から12月14日までです。

まずは、正式に受け付けられたコメントとトラックバック数、それにスパムとして検出され拒絶されたものの統計です。

総コメント受付数240
 うちスパム数1
総トラックバック受付数96
 うちスパム数4
総スパム検出数(コメント=1259+トラックバック=1852
 で上記は含まず)
3111
 うち誤検出皆無
 うちバックリンクが無いためにスパム扱いにされた
 かわいそうなケース
約10件

ご覧のとおり、なかなかの結果です(スパム比率が9割近いというのもちょっと悲しいですが)。スパムの誤検出はちゃんとした記録が無いので0だったかは覚えていないのですが、あっても数個レベルだったと思います。一方、フィルタの仕様上スパムと判定されたものの、復活してあげても良いかなと思えるものも10個弱くらいはあったと思います(ほとんどがバックリンクの無いトラックバック)。スパムの9割以上は海外からでした。

一方、スパム検出時にどういうアルゴリズムでヒットしたかを示すのが以下の表です(一つのスパムが複数にヒットしたものもあり)。アルゴリズムは他にもいくつかありますが、この6個で大半を閉めています。なお、「バックリンクなし」のみトラックバックのみの適用で、残りはコメントとトラックバック共通に適用しています。

1非日本語2808
2ASCIIのみ2730
3バックリンクなし(トラックバックのみ)1804
4url数制限1033
5<a>タグを含む1607
6[url]タグを含む529

スパム対策

スパム対策といっても特に高度なことをやっているわけではありません。順に説明していきます。

  1. 日本語じゃないのはスパムだ: 日本語を含まないものはまずスパムです。これはサイトによっては問題あるかもしれませんがえむもじらでは真です。検出は /[あ-んア-ン]/ という正規表現でチェックしています。かな文字を含まない日本語はまずないのでこの程度で十分でしょう。
  2. ASCIIだけのはスパムだ: これは上のルールに包含されますが、一応中国語やハングルなんかを区別するために入れています。もっとも非日本語の多バイト文字(らしきもの)はほとんど文字化けしてますが。
  3. バックリンクのないトラックバックはスパムだ: バックリンクというのは、トラックバック送信元からえむもじらの該当記事へのリンクのことをいいます。これが無いものの多くはスパムです。これは LWP::Simple でトラックバック元のページをまるごと get してチェックします。ただし、上で述べたように、これでスパム扱いにするのはかわいそうなケースもあります 。例えば、言及している記事とは別の記事のリンクを張っている場合や(たんなるリンクミスだと思います)トップページにリンクを張っているケースがありました。現状は、バックリンクはパーマリンクがあるかでチェックしていますがホームの URL(全てのパーマリンクにこれが含まれる)でチェックしてもよいかもしれません。
    スパムトラックバック=1852のうち1804個(97.4%)がこれに該当していることから、非常に効果があることが分ります。
  4. url がやたらと多いのはスパムだ: これは言わずもがなですね。えむもじらでは5個以上でアウトにしています。
  5. html タグを含むのはスパムだ: タグは受け付けませんと書いてあるのにタグつきで書き込むのはもちろんスパムですね。えむもじらでは <a href= で引っ掛けています( <a だけでも良いかも)。スパマーは基本的にどこかの url へ誘うものなので、a タグをおさえてけば OK。正規表現を使うまでもありません。
  6. BBCode を含むのはスパムだ: これも上と同じ理屈で [url で引っ掛けています。

上記以外にも、いわゆる NG ワードをいくつか登録していますが、上の6種類でほぼカバーできています。最近では、バックリンクを(大量に)入れた上で迷惑トラックバックを送ってくるケースもちらほら見かけます。新たな対策が必要になるかもしれません。

コメントやトラックバックで生成されたリンクには rel="nofollow" 属性を追加するのは当然です。

えむもじらは、ブログシステム全体が自作なので、上記の処理は全部ハードコーディングしています。といっても統計処理も含めて Perl で100行程度です。

不幸にもスパムが書き込まれた場合に、それらを簡単に削除できることも重要だと思います。スパマーは一度に10個も20個もスパムを送りつけてきますから。一覧表示させて、チェックボックスをぽちぽちチェックして一括削除!というくらいはできないとしんどいと思います。

最終更新: 2006年12月17日(日) 11時15分

コメント

コメントはありません。

トラックバック (1)

トラックバックは検索対象外です。

この記事にリンクしているページ < >

  1. データがありません。