Quasi-Spam Filter Plugin バージョンアップ
Ogawa::Memoranda さんご提供のスパム対策プラグインが 2005.04.08 付で 0.20 にバージョンアップされておりまして、大変遅くなりましたが本日アップグレードさせて頂きました。バージョンアップに伴いフィルタ対象変更のカスタマイズが楽になりました。またカスタマイズ方法についても配布元で掲載くださっています。ありがとうございました。
ということで、当サイトではスクリプトを下記のようにカスタマイズ致しました。
- プラグイン:Quasi-Spam Filter Plugin - Release 0.20
- 改変内容:下記参照
この変更で前回(コメントスパム対策(その6)・トラックバックスパム対策(その2))までと同様の機能を継承しています。
プラグインは上記リンクよりダウンロードしてください。
改めて説明致しますと、このプラグインは、予め設定した文字列を含むコメント・トラックバックをフィルタリング(エラー返送等)してくれるという仕組みになっています。例えば "hoge" をフィルタ文字としてプラグインに設定しておけば、"hoge" が含まれるコメント・トラックバックは受け付けません。またフィルタ文字とは別に、フィルタリングしたい対象エリアを、コメント・トラックバックそれぞれ個別に設定することができます。さらに受信時のリアクションを選択することができます。
1.フィルタ対象文字列の追加
下記のように青色部分を追加します。
# Set your spam pattern
$COMMENT_PATTERN = 'char1|char2|…|charn|<h1>|<a\s'; # H1 or A elements
$TBPING_PATTERN = 'char1|char2|…|charn|<h1>|<a\s'; # H1 or A elements
char1 ? charn は任意のフィルタ文字列を設定します。文字列を複数配置する場合はサンプルのように "|" で区切ります。コメントでリンクを受け付けたい場合は、$COMMENT_PATTERN の "<a\s"(とその前の "|" )は削除してください。
2.フィルタ対象フォームエリアの追加
デフォルトでのフィルタ対象となるフォームエリアは、「コメントの内容」および「トラックバックの概要(=本文の先頭n文字)」となっていますので、「コメント投稿者」および「トラックバックタイトル」を追加するサンプルを記します。
use MT::Comment;
use MT::TBPing;
sub is_comment_spam {
my $comment = shift;
return ($comment->text =~ /$COMMENT_PATTERN/i ||
$comment->author =~ /$COMMENT_PATTERN/i);
}
sub is_tbping_spam {
my $tbping = shift;
return ($tbping->excerpt =~ /$TBPING_PATTERN/i ||
$tbping->title =~ /$TBPING_PATTERN/i);
}
今回のバージョンアップで他のエリアについても簡単に設定できるようにしてくださっているので、「全部入り(ラーメンか)」を希望される場合は下記のように設定すればOKです。
sub is_comment_spam {
my $comment = shift;
return ($comment->text =~ /$COMMENT_PATTERN/i ||
$comment->author =~ /$COMMENT_PATTERN/i ||
$comment->email =~ /$COMMENT_PATTERN/i ||
$comment->url =~ /$COMMENT_PATTERN/i ||
$comment->ip =~ /$COMMENT_PATTERN/i);
}
sub is_tbping_spam {
my $tbping = shift;
return ($tbping->excerpt =~ /$TBPING_PATTERN/i ||
$tbping->title =~ /$TBPING_PATTERN/i ||
$tbping->source_url =~ /$TBPING_PATTERN/i ||
$tbping->blog_name =~ /$TBPING_PATTERN/i ||
$tbping->ip =~ /$TBPING_PATTERN/i);
}
なお上に設定したものから順番にチェックし、文字列がマッチした時点で処理が終わる(=残りは実行されない)ので、優先度の高いものから並べると良いでしょう。
3.コメントスパム受信時のリアクション変更
ここでは正常に受け付けたように見せかける設定にしています。
# Choose a method for rejecting Spam Comments from:
# 'CommentFilter', 'CommentThrottleFilter', 'CommentError',
# 'CommentLongError', 'CommentRedirect', 'CommentEvilRedirect'
$COMMENT_METHOD = 'CommentErrorCommentFilter';
4.トラックバックスパム受信時のリアクション変更
こちらも同様です。
# Choose a method for rejecting Spam Pings from:
# 'TBPingFilter', 'TBPingThrottleFilter', 'TBPingError'
$TBPING_METHOD = 'TBPingErrorTBPingFilter';