Amazon商品の価格変動チェック「あまとも」
コミックダッシュ!は初音ミクGTプロジェクトを応援しています
個人ニュースサイトを巡回する「メガとんトラック」
全ての記事 携プレMP3 デジカメ レコーダ ゲーム メモリ デジモノ コラム 雑談 ブログ あまとも コミックダッシュ!
前の記事次の記事
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
    ブログ「デジモノに埋もれる日々」「アニメレーダー」「コミックダッシュ!」管理人。デジモノ、アニメ、ゲーム等の雑多な情報をツイートします。



    投稿者 CK : 記事URL | ブログ | | 2005/06/07 23:59


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

    トップに戻る

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



    ▼ コメント ▼

    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バージョンです。
    まったくの素人で、よろしくおねがいします。



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


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


    ▼ トラックバック ▼

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

    このリストは、次のエントリーを参照しています: トラックバックスパムも撃退せよ! MT用スパム対策コード:

    トラックバック時刻: 2005年6月28日 21:28

    » トラックバックスパム対策 from taka094s_days
    「デジモノに埋もれる日々 」さんのトラックバックスパムも撃退せよ! MT用スパム対策コードより、対策法をいただきました。ありがとうございましたm(_^_)m。 ... [続きを読む]

    トラックバック時刻: 2005年8月12日 17:00

    » コメント/トラックバックスパム撃退 from 【Uzlog】
    毎日、約1通、コメントスパムかトラックバックスパムがやってきます。来る方は1時間... [続きを読む]

    トラックバック時刻: 2006年6月 9日 23:24

    » 留守にしてても大丈夫( ̄^ ̄)b from TESIME'S ○○
    今までそんなになかったtrackbackのspamが増えてきたので対策を施しまし... [続きを読む]

    トラックバック時刻: 2008年5月26日 05:19

    » スパマーさんへの思いやり from 腹筋とくびれ
    “どうぶつの森”では雑草を抜く派。----------------------どんなコメントにもこれまで心を込めてお返事してきたわ。返信が遅れるのはなんて... [続きを読む]

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