日本語でないスパムをフィルタするプラグイン(MT3.2以降用)

Blogが一般化するにつれて、コメントやトラックバックを使ったスパムが増えました。
Movable Type 3.2ではスパム対策機能が強化され、プラグインを追加することでさまざまなスパム対策ができるようになっています。

スパムの中では、海外から送信されてくるものが多いです。
そこで、Movable Type 3.2以降用に、日本語を含まないコメントやトラックバックをスパムとみなしてフィルタリングするプラグインを作ってみました。

スパムの判定基準

このプラグインでは、全角/ひらがな/句読点の文字が含まれているかどうかで、日本語のコメント/トラックバックであるかどうかを判断します。
これらの文字が指定した文字数以上含まれていれば、日本語(スパムではない)と判断します。
そうでなければスパムとみなします。

なお、スパムかどうかを判断する際には、以下の部分が検索の対象になります。

  • コメント → 投稿者名/メールアドレス/URL/コメントの本文
  • トラックバック → Blog名/送信元URL/トラックバックの概要

インストール

まず、以下のアドレスに接続して、プラグインのファイルをダウンロードしてください。

NotJapaneseLookup.zip

プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。

また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、Movable Type Plugin Directoryのページをご参照ください。

Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」も販売しています。
ご自分でプラグインを作ってみたい方に、ぜひお勧めしたい一冊です。
詳細は特設ページをご覧ください。

ファイルはZip形式で圧縮してあります。
解凍すると、「NotJapaneseLookup.pl」というファイルができますので、それをMovable Typeの「plugins」フォルダにアップロードしてください。

設定

Movable Typeにログインし、個々のBlogのメニューを開いて、「設定」画面の「プラグイン」のタブを表示します。
すると、プラグイン一覧の中に「Not Japanese Lookup」がありますので、「設定を表示」のリンクをクリックして設定を開きます、スパムと判断する条件を設定します。

標準では、以下の画面のような設定になっています。
この場合、「全角文字を1文字以上含めば、日本語(スパムでない)とみなす」という設定になります。

↓設定画面の例(クリックすると元の大きさで表示します)
プラグインの標準設定

全角文字を含み、かつひらがなや句読点を含むものだけを、日本語とみなすようにすることもできます。
例えば、「全角文字を5文字以上含み、かつひらがなを2文字以上と句読点を1文字以上含む場合は、日本語とみなす」というようにしたい場合、以下のように設定します。

  • 「全角文字を」の欄 → 5
  • 「ひらがなを」の欄 → 2
  • 「句読点を」の欄 → 1

設定が終わったら、「変更を保存」のボタンをクリックします。

他のスパム対策プラグインとの兼ね合い

Movable Type 3.2のスパム対策機能では、複数のスパム対策プラグインを組み合わせて、スパムかどうかを判断することができます。

個々のスパム対策プラグインは、コメントやトラックバックに「スコア」をつけます。
スパムとみなす場合は、通常はマイナスのスコアがつきます。
そうでない場合は、スコアは通常は0になります。
NotJapaneseLookupプラグインでは、日本語でないコメント/トラックバックには、標準では-1のスコアをつけます。

また、プラグインによっては、プラスのスコアをつけるものもあります。
例えば、MT3.2標準の「SpamLookup - Link」のプラグインでは、過去にコメント/トラックバックしたことがある人からのコメント/トラックバックには、標準では+1のスコアをつけるようになっています。

各プラグインのスコアが出たら、それらが平均されます。
そして、その平均値が「判断基準値」より低ければ、スパムとみなすようになっています。
判断基準値は、Blogの設定の「コメント/トラックバック」のタブの「迷惑コメント/トラックバック」の箇所で設定することができます。
標準ではこの値は0に設定されていますので、スコアの平均値が0より小さい場合は、スパムとみなされることになります。

このような仕組みのため、あるプラグインが判断基準値より小さいスコアをつけても、他のプラグインが判断基準値より大きいスコアをつけると、平均が判断基準値を越えて、スパムでないとみなされる場合があります。
例えば、プラグインAが-1のスコアをつけ、プラグインBが+2のスコアをつけると、平均は+0.5になります。
もし、判断基準値を0に設定していると、このコメント/トラックバックは、スパムでないと判断されることになります。

このような状況に備えて、NotJapaneseLookupプラグインでは、スコアのつけ方を設定することができます。
プラグインの設定の画面に、スコアを設定する欄があります。

前述したように、日本語でないコメント/トラックバックには、標準では-1のスコアをつけます。
もっと低いスコアをつけるように設定すれば、スコアの平均値が判断基準値を上回る可能性は低くなります。