«  近況 | トップ | 記事一覧 | これも「リノベーション」...  »

コメントスパム対策

| コメント(0) | トラックバック(0)

2-3日おきくらいにドワッと押し寄せるコメントスパム対策に格好のPluginを導入。Movable TypeではTypeKeyによって避けることもできるのだが、MTユーザ以外にはまだまだTypeKeyの認知は薄く、いちいち登録してもらうのも忍びないので、TypeKeyなしでもできるようにしていたのだが、やはりコメントスパムをいちいち手動で削除するのはウザイ。

というわけで、何かないかと探していたら見つかったのがコレ。トラックバックスパム対策も兼ねていて大変便利。

  Ogawa::Memorandaさん: Quasi-Spam Filter Plugin

コメントスパム/トラックバックスパムに含まれる特定の文字列をチェックしてはじいてくれるもので、デフォルトでは

# Set your spam pattern
our $PATTERN = '<h1>|<a\s'; # H1 or A elements
our $TBPING_PATTERN = <h1>|<a\s'; # H1 or A elements

と、h1 タグおよび a タグが対象になっている。他にも文字列を付け加えたい場合は、"|"で区切って、

# Set your spam pattern
our $PATTERN = '<h1>|<a\s|hoge1|hoge2|hoge3'; # H1 or A elements
our $TBPING_PATTERN = '<h1>|<a\s|hoge1|hoge2|hoge3'; # H1 or A elements

としてあげればよい。(ウチの場合は、どちらもh1タグとaタグは外しています。)

ちなみにOgawaさんのオリジナルの仕様では、

  • コメントスパムの対象文字列は、コメント本文に含まれるもの
  • トラックパックスパムの対象文字列は、概要(excerpt)に含まれるもの

となっているが、コメントスパムについてはコメント投稿者名、トラックパックスパムについてはタイトルに含まれる文字列も対象にしたい場合の改変方法を、小粋空間さんが公開している。

それから、以下は、サーバのPerlのバージョンが5.6よりも旧いものを使っている場合のトラブルシューティング。

というのは、Ogawaさんのスクリプトでは、変数の宣言に"our"を使っているのだが、これは5.6以降でないと使えないらしいのだ。ウチの場合、5.00503だったため、コンパイルエラーになって、MTのログにはこんなエラーメッセージが並んでしまった。

Plugin error: /hogehoge/mt/plugins/quasi-spamfilter.pl Compilation failed in require at /hogehoge/mt/lib/MT.pm line 293.

で、解決法は次の二通り。

解決法1
変数宣言のところのourmyに置き換える(だけ)。

解決法2
変数宣言のところのourを消去して、変数宣言の手前("# Set your spam pattern"の上)、use strictの次の行にuse vars qw($COMMENT_PATTERN $TBPING_PATTERN $COMMENT_METHOD $TBPING_METHOD $URL);を書き加える。つまり、

use strict;
use vars qw($COMMENT_PATTERN $TBPING_PATTERN $COMMENT_METHOD $TBPING_METHOD $URL);
# Set your spam pattern
$COMMENT_PATTERN = ・・・以下略

としてあげればいい。

Perlのことは丸きりド素人なので、最初は、とりあえず同じ症例の人はいないかと検索したのだが、役立つものは見つからなかった。(結果的に言えば、今時はみんなPerlのバージョンが5.6以上ということなのだろう。)Ogawaさんのサイトでも尋ねてみたものの、お手を煩わせただけでなかなか原因が突き止められなかった。(Ogawaさん、申し訳ありませんでした。)それで、最後にOgawaさんから「Webサーバーにログインして、コマンドラインでperl quasi-spamfilter.plを直接実行したときにどのように表示されるか」を見てくださいというアドバイスに従った結果、

Global symbol "$COMMENT_PATTERN" requires explicit package name at quasi-spamfil ter.pl line 13.・・・

というエラーメッセージが出てきて、これをもとに検索した結果、ようやく原因が判明。めでたく導入完了となった。(Ogawaさん、アドバイスありがとうございました。)

ちなみに導入完了の一歩で前でもう一つ、

Storable object version 2.09 does not match $Storable::VERSION 2.08 at /usr/libdata/perl/5.00503/DynaLoader.pm line 188.

というエラーにも遭遇したのだが、これは、以前に何かの関係でextlibディレクトリーに入れておいたStorable.pmのバージョンが2.08だったのが原因と判明。そこでサーバのusrディレクトリーまで行って見つけた2.09と置き換えて、解決できた。

なにはともあれ、これでうざいスパムを大幅にはじけるはず。

トラックバック(0)

トラックバックURL: http://hideyukihirakawa.com/mt/mt-tb.cgi/267

コメントする


画像の中に見える文字を入力してください。

2017年3月

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

Access

Archive

Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。
Powered by Movable Type 4.22-ja
OpenID対応しています OpenIDについて

出版情報

 

 

Twitter

About this blog

▼当blogは大阪大学コミュニケーションデザイン・センター(CSCD)の平川秀幸の個人用blogです。▼トラックバック&コメントwelcomeです。ただし、記事にあまり関係がないもの、商品広告・宣伝のためのものなどは、当方の判断により削除させていただきますので、ご了解ください。

このブログ記事について

このページは、hirakawaが2005年3月 1日 09:45に書いたブログ記事です。

ひとつ前のブログ記事は「近況」です。

次のブログ記事は「これも「リノベーション」?―阪大コミュニケーションデザイン・センターのオフィス」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。