random image
2004年09月16日

コメントスパム再来

15日深夜~16日未明にかけてコメントスパムが入りはじめ、その後もぞくぞくと。今日の夕方の時点で18件になりました。まぁ、まだマシな数ですね。

対策したのでそのメモです。

まずは事後対策。

Memo Leaves:コメントスパム一括削除用メニュー画面変更

割と人気なコメントスパム一括削除用メニューテンプレートを変更してさらに一気に効率を上げようとか試みてみました。

まぁようはメニュー画面のコメントの数増やしたときに一つ一つチェックすんの邪魔くせーんだよゴルァ(゚Д゚#)ってところを一気にチェックするJavaScript作っただけです。

コメントを一つ一つ削除していくのは激しく面倒なのでとても助かりました。ありがとう!

さて一番肝心なのは、スパムから身を守る方法。MT-Blacklistプラグインを入れたらいいとは聞いてたのですがMT-Notifierとバッティングするところがあるとも聞いていて、今までサボってました。

でもその回避策を書かれたalfabeatさんのブログはDBがぶっ飛んでしまったらしいのです。(ご愁傷様です)

なので、お世話になったのは以下のサイト。

Ruby site:コメントスパムがたまぁにあるので<Mt-Blacklist

おひら的には気にしてないのでいいのだが、さすがにリンク先が問題なサイトだとちとここを見に来てくれている希なる人々に悪いなぁとか、単にうっとーしいなぁとか諸々の理由で、Jay Allen dot orgさんのMT-Blacklist/Comment Spam ClearinghouseのMT-Blacklistプラグインを導入することにした。

トラックバック先にトラブルがあると情報が途切れてしまうので、ここでもミラー的にざっくりとメモしておきます。環境は Moveble Type 2.661 / MT-Blacklist 1.6.5 / MT-Notifier 1.4.1 / です。

1.MT-BlacklistYAMLをダウンロード

2.上記ファイルを解凍
tar.gzファイルはLhaca デラックス版(Windows用フリーウェア)でOK。

3.mt-blacklist.cgiのperlのパス(1行目)の確認、修正

4.Blacklist.pmの42行目のコメントアウト(#)を外し、ディレクトリを絶対パスで指定

5.MTBIPing.pmに文字化け対策を施す

Milano::Monolog:MT-Blacklistを使用した場合の文字化け対策

MT-Blacklistプラグインは、lib/MT/App/Trackback.pmのメソッドを置き換えているようです。MT-Blacklistを導入する場合は、以下のように書き換えれば大丈夫だと思います。


    MTBlPing.pm
  1. 42行目以降を書き換え my($title, $excerpt, $url, $blog_name) = map scalar $q->param($_),                                          qw( title excerpt url blog_name); MT::App::Trackback::no_utf8($tb_id, $title, $excerpt, $url, $blog_name);   ↓ my($title, $excerpt, $url, $blog_name, $icode) = map scalar $q->param($_),                                          qw( title excerpt url blog_name charset); MT::App::Trackback::no_utf8($tb_id, $title, $excerpt, $url, $blog_name); require Jcode; my $charset = {'Shift_JIS'=>'sjis','ISO-2022-JP'=>'jis','EUC-JP'=>'euc',                'UTF-8'=>'utf8'}->{$app->{cfg}->PublishCharset} || 'utf8'; my $incoming = {'shift_jis'=>'sjis','iso-2022-jp'=>'jis','euc-jp'=>'euc',                 'utf-8'=>'utf8'}->{lc($icode)} || Jcode::getcode($excerpt . $title . $blog_name); $title = Jcode->new($title, $incoming)->$charset(); $excerpt = Jcode->new($excerpt, $incoming)->$charset(); $blog_name = Jcode->new($blog_name, $incoming)->$charset();
  2. 108行目以降を書き換え if (length($excerpt) > 255) {     $excerpt = substr($excerpt, 0, 252) . '...'; }   ↓ if (length($excerpt) > 255) {     $excerpt = substr(Jcode->new($excerpt, $charset)->euc(), 0, 252);     if ($excerpt =~ /\x8F$/ or $excerpt =~ tr/\x8E\xA1-\xFE// % 2) {         chop $excerpt;     }     $excerpt = Jcode->new($excerpt . '...', 'euc')->$charset(); }

6.MTBIPost.pmの修正
202行目と414行目にそれぞれ追記し、


            MT::Mail->send(\%head, $body);
        }
		require jayseae::notifier;
        &jayseae::notifier::notify ( $app, $blog, $entry, $comment );
    }
    return $app->redirect($link_url);
}

という形になればOK。

7.ファイルをアスキーモードでFTP。


MT_DIR/mt-blacklist.cgi
MT_DIR/plugins/Blacklist.pl
MT_DIR/extlib/jayallen/Blacklist.pm
MT_DIR/extlib/jayallen/MTBlPing.pm
MT_DIR/extlib/jayallen/MTBlPost.pm
MT_DIR/extlib/jayallen/Blacklist_Config/  ←空のディレクトリを作成。(Blacklist.pmで設定した、$blacklist_config_directory。)
MT_DIR/extlib/Yaml.pm
MT_DIR/extlib/YAML/Error.pm
MT_DIR/extlib/YAML/Family.pm
MT_DIR/extlib/YAML/Node.pm
MT_DIR/extlib/YAML/Transfer.pm

8.各ファイル、ディレクトリのパーミッションを確認、修正

9.ブラックリストをインポート
Latest Change to Master Blacklist:をコピーします。ブラウザから mt-blacklist.cgi にアクセスし、add 画面にペースト → import。

10.mt-blacklist.cgi をアクティブに
config → MT-Blacklist Master Switch で Yes。

11.コメント / トラックバックのテスト

お疲れさまでした!

「コメントスパム再来」 へのトラックバックURL

トラックバックスパムと区別するため、トラックバック元の記事中にこちらへのリンクを入れていただきますようお願いします。詳しくはトラックバック・ポリシーをご覧ください。


Posted by masahiro : 2004年09月16日

「コメントスパム再来」 へいただいてるコメント

「コメントスパム再来」へのコメントはまだありません。あなたのコメントをお待ちしてます。

古いエントリーにもお気軽にコメントくださいね。ちゃんとこちらにお知らせメールが飛んできますので、コメントをいただいたことに気づきます。

コメントお待ちしてます


















投稿ボタンを押したあと、処理に1分ほど時間がかかります。二度押しせず、ちょっとだけお待ちください。

お待ちの間のお茶の代わりに、クリックで進めるスライドショーできました。新しい画面が開き、今までの画像がテキトーに表示されます。(ナローバンド版はこちらです。)

buslogについて

my bus buslogは、1966年式ワーゲンバスに乗るmasahiroのサイトです。

バスの日々のメンテナンスやドライブ、試したアイテム、バスやクルマ一般についての情報を主に取り上げたブログがメインです。→詳しく

サイト内検索

RSS

RSS 1.0 RSS 2.0 ATOM 0.3 feedbuner

buslogをメールで購読する:

powered by FeedBurner

アクセスランキング