Amazon商品の価格変動チェック「あまとも」
コミックダッシュ!は初音ミクGTプロジェクトを応援しています
個人ニュースサイトを巡回する「メガとんトラック」
前の記事次の記事
2005/06/07 23:59 - 2005/06/07

トラックバックスパムも撃退せよ! MT用スパム対策コード


■2005/03/23 [スパムフィルタのコードをキーワード方式に変更しました。]
 
の記事で示したとおり、当ブログの コメントスパム対策 は、
「URLが特定キーワードにマッチする場合に弾く」
という方式を採用しており、かなりの効果を発揮していました。
時々すり抜けるパターンがあると、またキーワードを追加するという作業を繰り返し、
当初100ちょっとだったキーワードは、現在では400を超えています。
 
ただ、トラックバックスパムのほうは、それほど数が多いわけでもなかったため、
今までは放って置いていたのですが、今日、遂に来ました。
 
 狂ったようにトラックバックスパムが!
 
6/7のAM0時~1時に 「 214件 」、PM4時~5時に 「 215件 」
・・・・有り得ないくらいの エゲツなさ です。(;´Д`)
 
ご存知の通り、MovableTypeはコメントやトラックバックを1件受ける度に
重い重い「再構築プロセス」が走り出します。このように数十件のトラックバックが
一斉に押し寄せると、それだけでサーバが DoSでパンク してしまうのです。
 
これが原因で本日のデジ埋は数十分のダウンタイムがあり、更にしばらくの間、
トラックバック受付を停止する措置をとらせて頂いておりました。
この間にトラックバックを頂いた方にはこの場でお詫び申し上げます。m(_ _)m
 
ということで、いよいよトラックバックにもスパム対策を施さなければならない時が
来たようですので、コメントスパム対策と同じもの を導入してみることにしました。
 
いじるファイルは、前回は Comments.pm でしたが、今回は Trackback.pm です。
ですが、やることはあまり変わりません。MT::IPBanListでIP制限をしている
コードの直後あたりに、以下のようなコードを挟み込みます。
use FileHandle;
my $blacklist = "(MTインストールdir)/lib/MT/App/antispam.txt"; #キーワード羅列ファイル。
my $fh = FileHandle->new($blacklist) or die "$blacklist: $!";
 
while(<$fh>) {
  chomp;
  if ( $_ ne "" && $q->param('url') =~ /$_/ ) {
    return $app->_response(Error=> $app->translate("TRACKBACK SPAM rejected.")); # 拒絶!
  }
}
# インデントが全角スペースになっていますので、コピペの際は注意してください

ほとんどコメントスパム対策のときと同じですね。違うのは赤い文字で示している、
エラーの返し方のところが、違うルーチンを呼んでいるというだけです。
 
これで、トラックバックを受けた際にも、そのリンク元URLが特定キーワードに
マッチする場合には、トラックバックエラーとして弾いてくれます。
 
しかし今回はこれだけでは済ませません。1時間以上「デジ埋」にDoS攻撃を
喰らわせた 罰として、晒し者にして差し上げましょう(笑)
use FileHandle;
my $blacklist = "(MTインストールdir)/lib/MT/App/antispam.txt"; #キーワード羅列ファイル。
my $fh = FileHandle->new($blacklist) or die "$blacklist: $!";
my $logfile = "(MTインストールdir)/lib/MT/App/antispam.log"; #ログ吐き用のファイル。
my $fh2 = FileHandle->new(">>$logfile") or die "$logfile: $!";
 
while(<$fh>) {
  chomp;
  if ( $_ ne "" && $q->param('url') =~ /$_/ ) {
    my $time_str = localtime(time); # 時刻も控えておく
    print $fh2 $time_str. "\tTRACKBACK SPAM rejected. url=" .$q->param('url'). "\n"; # ログファイル記録。
    return $app->_response(Error=> $app->translate("TRACKBACK SPAM rejected.")); # 拒絶!
  }
}
# インデントが全角スペースになっていますので、コピペの際は注意してください

このキーワードマッチ方式のスパム対策で 拒絶したリクエストの履歴 を、
次々にログファイルに書き込んでいくというコードです。もちろんコメントスパム対策にも
同じコードを追加してみました。するとログファイルがこんな感じになっていきます。
Tue Jun 7 23:02:03 2005 COMMENT SPAM rejected. url=http://www.poker-7.com/texas-holdem.html
Tue Jun 7 23:03:48 2005 COMMENT SPAM rejected. url=http://www.poker-7.com/pacific-poker.html
Tue Jun 7 23:04:36 2005 COMMENT SPAM rejected. url=http://www.poker-7.com/poker-games.html
Tue Jun 7 23:06:11 2005 COMMENT SPAM rejected. url=http://www.poker-7.com/poker-rooms.html
Tue Jun 7 23:10:04 2005 COMMENT SPAM rejected. url=http://www.poker-7.com/pacific-poker.html
Tue Jun 7 23:10:39 2005 COMMENT SPAM rejected. url=http://www.poker-7.com/pacific-poker.html
Tue Jun 7 23:11:55 2005 COMMENT SPAM rejected. url=http://www.poker-7.com/online-poker.html
Tue Jun 7 23:13:10 2005 COMMENT SPAM rejected. url=http://www.poker-7.com/pacific-poker.html
Tue Jun 7 23:13:31 2005 COMMENT SPAM rejected. url=http://www.poker-7.com/texas-hold-em.html
Tue Jun 7 23:16:02 2005 COMMENT SPAM rejected. url=http://www.poker-7.com/online-poker.html
Tue Jun 7 23:18:10 2005 COMMENT SPAM rejected. url=http://www.poker-7.com/poker.html
Tue Jun 7 23:18:20 2005 COMMENT SPAM rejected. url=http://www.poker-7.com/texas-hold-em.html
                 :

・・・・はっはっはっは、
愚か者が 面白いように罠にかかりよる Ψ(`∇´)Ψ
っていうか、2分に1個のペースでコメントスパム送ってくるんじゃない!
 
スパムをブロックするだけでも十分といえば十分なのですが、罠に掛かったスパムを
敢えてウォッチングして楽しめば、また 溜飲も下がろうというもの です。
 
それにしても、ものスゴイ数のスパムが延々と押し寄せているということ、
改めて実感させてくれる出来事でした、皆さまも是非お気をつけくださいませ。


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




« 2万円を切るムービーカメラ、しかし単焦点というのは・・・

トップに戻る

結局は抽選売り! RD-H1をめぐる仁義なき戦いも収束へ »


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



2020年あけましておめでとうございます。今年はちゃんと歯を磨きます。。。


2019年も大変お世話になりました。2020年も宜しくお願いいたします。


2019年あけましておめでとうございます。・・からのいきなりノートPC修理のお話


2018年も大変お世話になりました。2019年も宜しくお願いいたします。


デジ埋のブロガー名刺ver.3.1を前川企画印刷さんに作っていただきました。


2018年あけましておめでとうございます。今年は「積んデジ」を減らす・・?


2017年も大変お世話になりました。2018年も宜しくお願いいたします。


2017年あけましておめでとうございます。新年はモニタトラブルから始まります。


2016年も大変お世話になりました。2017年も宜しくお願いいたします。


2016年! あけましておめでとうございます!


2015年も大変お世話になりました。2016年も宜しくお願いいたします。


デジ埋のブロガー名刺ver.3を前川企画印刷さんに作っていただきました。


▼ コメント ▼

No.1312   投稿者 : 剣士   2005年6月 8日 09:58

18関係はえげつないですな~・・・

よくブログ関係でコメントスパム見ますが・・・
本題と関係ない内容で
「自分もつくったよ~」とか「良いブログですね~」
とか単品しかも同じ名前の人が続々書き込みする・・・

対策お疲れ様ですm(__)m


No.1313   投稿者 : テク憧   2005年6月 8日 20:57

この晒され者はうちにも通算で1000発くらい打ち込んできてる奴ですな。

最近はまぁ10発とかそういう単位で打ってくるぐらいなので大目にみて
ますが、初期の頃は100や200固め打ちしてました。

迷惑なやつですね、ホントに。(-_-;)


No.1340   投稿者 : CK   2005年6月11日 04:39

●剣士さん
時々日本語の変なスパムを見かけますよね( ̄▽ ̄;)
デジ埋でも何度か「○○です、こんにちは→URL」みたいなコメントスパム
(どう見ても自動書き込み)を受けて、そのたびに削除していました。
メイルの世界でもそうですが、ブログの世界でも、スパムとのいたちゴッコは続きそうです・・・。
 
●テク憧さん
本当に迷惑ですよねぇ~。モノには限度があるというか、
一日に数百も打ち込まれると流石に「勘弁してくれ。・゚・(ノД`)・゚・。」と思います。
ちなみにこのログを取り始めてから、コメントスパム、トラックバックスパムの総数が
カウントできるようになったのですが、水曜日は718件、木曜日は895件、金曜日は885件!
ガクガクブルブルです、本当に(汗


No.2957   投稿者 : tesime   2006年6月10日 00:19

トラックバックができていてもログ上はエラーで表示
されていましたので、何度もトラックバックを送信し
てしまいました。spam対策に導入したプラグインがリ
ンクを張ったブログのトラックバックを自動で検出す
る仕様らしく、トラックバック先から削除してもトラ
ックバックを行うのも拍車をかけたようです。現在配
布先に回避策を伺っています。申し訳ありません。


No.5771   投稿者 : volume   2006年12月 5日 22:37

はじめまして。
エントリーを拝見しましたが、Trackback.pmのどこにご紹介のコードを挟み込みますか。

「MT::IPBanListでIP制限をしているコードの直後あたりに」との意味は
「require MT::IPBanList;」このコードのすぐ下ですか。
自分使ったmtは3.3バージョンです。
まったくの素人で、よろしくおねがいします。



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


保存しますか?




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