スパムフィルタのコードをキーワード方式に変更しました。
2005/03/232005/02/08 [スパムコメント対策: URLフィルタを施してみました。
スパムコメント対策: URLフィルタを施してみました。]
の記事でもお伝えした通り、一斉に襲ってくる コメントスパム に対応するために、
MovableType の Comments.pm を書き換えて、スパムのフィルタリングを行っています。
前回の記事でもご紹介しましたが、miyagawaさんの記事、あまやんさんの記事
からほとんどそのまま流用させて頂いたコードを動かしておりました。
その内容がこちら。
use FileHandle;
my %banned_url;
my $blacklist =
"(MTインストールディレクトリ)/lib/MT/App/antispam.txt";
my $fh = FileHandle->new( $blacklist ) or die "$blacklist: $!";
while ( <$fh> ) {
chomp;
if ( $_ ne "" ) { $banned_url{$_} = 'death'; }
}
if( $banned_url{ $q->param('url') } ) {
return $app->handle_error('COMMENT SPAM rejected.');
}
(インデントが全角スペースですので、コピペの際はご注意ください。)
これで antispam.txt に列挙されたURLと同じURLを指定したコメントは
フィルタされることになります。当初はかなりの効果を発揮していました。
ところが最近、結構な勢いで この網をすり抜けるスパム が横行しています。
というのも、最近のスパムはURLのうしろに xxxxxx-yyyy.html のようなhtmlを
つけてくるのです。現在のコードですとURLの 完全マッチ しか行いませんので、
ちょっと違ったURLを作られると、どんどんすり抜けられてしまいます。
そこでいっそ、完全マッチ方式をやめ、
指定キーワードを含んだURLは全て弾く
という方式に変更することにしました。それがこのコードです。
use FileHandle;
my $blacklist =
"(MTインストールディレクトリ)/lib/MT/App/antispam_keyword.txt";
my $fh = FileHandle->new( $blacklist ) or die "$blacklist: $!";
while( <$fh> ) {
chomp;
if ( $_ ne "" && $q->param('url') =~ /$_/ ) {
return $app->handle_error('COMMENT SPAM rejected.');
}
}
antispam_keyword.txt に羅列されたキーワードが、コメントの指定URLに
一部でもマッチ すれば、スパムと判定して弾く仕組みになっています。
そのキーワードのほうは、現在こんな感じで 100個ちょっと がリストされていますが、
現時点でのスパムキーワード: antispam_keyword.txt
従来の完全マッチ方法で 1,000以上のURL をリストしていたものが、
この100個程度で問題なくカバーできることになりました。
たとえば「-casino」と「casino-」というキーワードでは、
「online-casino」も「free-casino」も「happy-casino」も「casino-games」も
みんな一様に弾いてくれることになるワケです。
今後も折を見てリストを増やしていく予定です。ただ、キーワードの設定の
仕方が巧くないと、稀に正当なURLも弾いてしまう 場合が有り得ます。
もし、このブログでそうしたトラブルがありましたら、その旨を
掲示板 のほうでご連絡頂ければ幸いです。(=゜ω゜)ノ
2005/03/23 [updated : 2005/03/23 14:32]
ブログ「デジモノに埋もれる日々」「アニメレーダー」「コミックダッシュ!」管理人。デジモノ、アニメ、ゲーム等の雑多な情報をツイートします。
@ckom をフォローする
« 特別企画おまけ - BiBio JukeBox 解体新書 | トップに戻る | USBメモリ付きボールペン、サンコーにライバル登場!? » |
▼ はてなブックマークのコメント ▼
関連記事
ピックアップタグ
- アニメ(440)
- GSR(319)
- ライブ(79)
- イベント(207)
- コラボカフェ(35)
- VTuber(25)
- アニメ吐き出しメモ(10)
- ウマ娘(50)
- 舞台挨拶(45)
- 先行上映会(19)
- トークショー(20)
- バンドリ!(51)
- ガールズ&パンツァー(59)
- 少女☆歌劇レヴュースタァライト(60)
- ゾンビランドサガ(9)
- プリンセス・プリンシパル(19)
- スタリラ(31)
- コラム(171)
- ゲームプレイ日記(69)
- ワンフェス(13)
- コメンタリー上映(7)
- 岩浪美和(25)
- 大洗(9)
- 響け!ユーフォニアム(12)
- リズと青い鳥(9)
- RAISE A SUILEN(10)
- 艦これ(23)
- ストライクウィッチーズ(23)
- メイドインアビス(8)
- BLAME!(8)
- ヤマノススメ(7)
- ラブライブ!サンシャイン!!(11)
- HELLO WORLD(6)
- 宇宙よりも遠い場所(5)
- ヴァイオレット・エヴァーガーデン(8)
- 私に天使が舞い降りた!(9)
コメントしましょう