- 2004-09-16 (木)
- Movable Type
- Reading time: 11分ぐらい
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.コメント / トラックバックのテスト
お疲れさまでした!
こちらもどうぞ!
- コメントスパム対策その2
- ぬぅ。MT-Blacklistプラグインを入れても、ブラックリストを潜り抜けてがしがし着弾します。 コメント本文に日本語が含まれてないと投稿できないように改造できるようなのですが、つい最近に海外からコメントをいただいたばかりなので、弾くわけ...
- コメントスパム対策
- バスは壊れて動かなくなってしまう前に整備しておくように、Movabletypeはコメントスパムが来る前に対策しておきました。参考にさせていただいたのは女子十二月号さん。 女子十二月号: MovableTypeコメントスパム対策 コメント欄に...
- コメント欄にも彩りを
- 以前にトラックバック元のサイトのサムネイルを表示できるようにしたのですが、処理に意外と時間がかからないので、コメント欄にも応用してみました。 トラックバックのとき同様Simple APIのサービスを使います。 Movable Typeを使っ...
- クリックで進めていくランダムスライドギャラリーできました
- buslogへいただくコメントは、投稿の際にMovable Typeのさまざまなプラグイン機能によって迷惑コメントでないかどうかチェックされてます。 ブラックリストに載ってる数百のIPアドレスとドメインに照らし合わせられ、コメント内容によっ...
- コメント欄のメールアドレスを非表示に
- コメントを書いてもらうかたには、「お名前」と「コメント本文」はもちろんなのですが、「メールアドレス」か「サイトのURL」のどちらかを記入してもらわないと投稿できないのがMovable Typeの仕様。 でも、サイトを運営されてない場合にはメ...
- Newer: コメントスパム対策その2
- Older: ノスタルジックカーショーのお土産はこれ
- Tags → Aircooled-Search:
- buslog
- Movable Type
- コメント
- スパム




