Amazon商品の価格変動チェック「あまとも」
コミックダッシュ!は初音ミクGTプロジェクトを応援しています
個人ニュースサイトを巡回する「メガとんトラック」
全ての記事 携プレMP3 デジカメ レコーダ ゲーム メモリ デジモノ コラム 雑談 ブログ あまとも コミックダッシュ!
前の記事次の記事
2005/03/23 14:32 - 2005/03/23

スパムフィルタのコードをキーワード方式に変更しました。

カテゴリ : ブログ タグ :

    2005/02/08 [スパムコメント対策: 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も弾いてしまう 場合が有り得ます。
    もし、このブログでそうしたトラブルがありましたら、その旨を
    掲示板 のほうでご連絡頂ければ幸いです。(=゜ω゜)ノ

    CK@デジモノに埋もれる日々 @ckom
    ブログ「デジモノに埋もれる日々」「アニメレーダー」「コミックダッシュ!」管理人。デジモノ、アニメ、ゲーム等の雑多な情報をツイートします。



    投稿者 CK : 記事URL | ブログ | | 2005/03/23 14:32


    « 特別企画おまけ - BiBio JukeBox 解体新書

    トップに戻る

    USBメモリ付きボールペン、サンコーにライバル登場!? »



    ▼ コメント ▼

    ご自由にコメントください(=゜ω゜)ノ  ▼ コメント入力欄を開く ▼
    ※管理人は多忙のためお返事はほとんどできません(スミマセン)。
    スパムおよび本文と無関係なコメントは削除対象になる可能性があります。


    ▼ はてなブックマークのコメント ▼


    ▼ トラックバック ▼

    このエントリーのトラックバックURL:

    ★コミックダッシュ! 10,000人突破ありがとうキャンペーン!(9/18~10/23)
     
    デジモノに埋もれる日々 : (C) CKWorks