コメントスパム再来
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-BlacklistとYAMLをダウンロード
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
- 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();
- 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.コメント / トラックバックのテスト
お疲れさまでした!
- 前後のエントリー
- 最近のエントリー
-
- チョロQバス動画5つ
- ビートルで無茶してる動画3つ
- アーリーバスで無茶してる動画3つ
- レイトバスで無茶してる動画3つ
- 今日でワーゲンバス歴○○日目
- これならベバストヒーターの代わりになるかも?
- 飲酒運転を疑似体験できる飲酒運転防止ポスター
- NEXCO中日本で速度抑制キャンペーン、ETC開閉バーの開くタイミングを遅く
- ブラウンの新ウェブCM、「ご当地モーニングレポート」
- 世界「最低」の車登場 車高わずか48センチ
- にじます試食レポ 燻製1匹、金太郎味噌、金太郎漬け編
- にじます試食レポ 味噌漬け、粕漬け、ベーコン編
- にじます試食レポ 塩焼き、手作りこんにゃく、燻製3枚おろし編
- なぜブラジルに住むか、その答えはこの写真に
- 想像力あふれるクルマの使い方
Posted by masahiro : 2004年09月16日
「コメントスパム再来」 へいただいてるコメント
「コメントスパム再来」へのコメントはまだありません。あなたのコメントをお待ちしてます。
古いエントリーにもお気軽にコメントくださいね。ちゃんとこちらにお知らせメールが飛んできますので、コメントをいただいたことに気づきます。



