【Drupal】モジュール紹介~Spamモジュール~

Submitted by yao on Thu, 2004/12/23 - 00:25.

googleでdrupalを検索すると5番目に出てしまうらしいので、Drupal情報を探している人に情報提供する社会的責任があると思い(勘違い)、たまにはDrupal情報を出します。コメントの練習台にもされちゃうくらいだしネ!

以前(というか今も)コメントスパムに攻められたことがあり(単発の練習台くらいはスパムと思いませんが)、対策のために本家で配布されているSpamモジュールを入れ、大変効果があったので、それについて書きます。

インストール

インストールらへんのことはモジュールのREADMEなんかを読んでいただきたいのですが、まぁ他のモジュールと一緒です。SQL流してテーブルを作り、モジュール本体をアップし、管理画面からモジュールをEnableにするだけです。

機能

機能としては、コメントやエントリに対してフィルタリングを行い、スパムだとみなしたら自動的にそれを弾いたり管理者にメールで通報してくれたりします。フィルタリング対象は、コメントのみに限定することもできるし、ブログやフォーラムのエントリに適用することもできます。

設定画面
設定画面

スパムを見分けるロジックには大きく分けて、

  1. コメント/エントリに含まれるURLを事前に登録したブラックURLリストから検索し、マッチしたら弾く
  2. コメント/エントリに含まれる単語を事前に登録したNGワード(古い)から検索し、マッチしたら弾く(正規表現可)

の二つがあります。ただまぁ、どっちも結局grepしてるだけのような(中身は見てないですが)。

僕は最初1番目の方法で弾こうとしていたのですが、どうしても対処療法になってしまうのと、敵はいくつもURLを持っていて役に立たないことがわかったので、2番目の方法に切り替えました。

具体的には、なんかonline pokerだとかcasinoだとか、ネットでギャンブルみたいなサイトからのスパムがほとんど(というか全部)だったので、casino/gambl/pokerの3ワードを弾くようにしたら、キレイにスパムを弾いてくれるようになりました。
(なおgamblにしたのはgambleでもgamblingでも弾けるようにするためです。)

あと簡単な統計を取ってくれる機能もあるのですが、それによるとyyrz.comは202のスパムコメントを受けたことになっています。多すぎ。しかもSpamモジュール入れる前に50くらいのスパムコメントを消したので、実際にはもっと多いでしょう。ふざけんあ!

統計表示画面
統計表示画面

不満な点

スパムを弾く機能に関してはこれで十分だと思いますし、実際に効果もあったので非常に満足しています。が、スパムを削除したいときにひとつひとつ消さなきゃいけないのが相当不便です。面倒なので消さずに放置しています(それでもunpublish状態になって表には出ないので)。でも本当は消したい・・・せっかくチェックボックスがあるのだから、選択して一括で消せると良かったのに。まぁDBから直接消せばいいと言えばいいのですが。改造する元気もないし、まぁいいか。

削除が不便なスパムハンドリング画面
削除が不便なスパムハンドリング画面

あとマルチバイト言語に対応しているかどうかはまだ未確認です。(ていうか、対応してなさそう・・・)
まぁもし対応してなくても、PHPはマルチバイト関連の関数はそこそこそろってるので、改造は容易でしょう。(たぶん。)

まとめ

その他、僕もまだ使っていない機能がけっこうあるようですが、grepだけで十分と言えば十分な気もします。スパムに悩まされているDrupalユーザーは使ってみる価値は大いにあるのではないでしょうか。

Submitted by 八百万 (trackback) (not verified) on Tue, 2005/02/22 - 00:12.

コメントスパムを防いでくれて非常に重宝していたSpamモジュールですが、実はトラックバックスパムには全く効か