Amazon商品の価格変動チェック「あまとも」
コミックダッシュ!は初音ミクGTプロジェクトを応援しています
個人ニュースサイトを巡回する「メガとんトラック」
全ての記事 携プレMP3 デジカメ レコーダ ゲーム メモリ デジモノ コラム 雑談 ブログ あまとも コミックダッシュ!
前の記事次の記事
2005/02/08 14:21 - 2005/02/08

スパムコメント対策: URLフィルタを施してみました。

カテゴリ : ブログ タグ :

    本日も未明から朝方にかけて、当blogに断続的に
     
     50件以上ものコメントスパムが登録される
     
    事態に見舞われ、そのたびにコツコツと削除する羽目になりました。
    またその間一時的に当blogにアクセスしにくい時間ができてしまったことと
    思います。この場を借りて皆さまにお詫び申し上げます。
     
    最近猛威を振るっている海外からのスパムのほとんど100%は、
     
     casino とか poker とか chat-nett とか、とか、とか、
     
    URLをベタベタと貼りまくって悦に入るスパマーでありますが、
    とにかく 無差別 に貼り付けてくるため、手に負えないタイプです。
     
    MovableTypeではコメントの投稿がある度に、
     
     該当する各ページの再構築がスタート
     
    しますので、短時間にコメントを大量投下されますと、サーバがあっという間に
    火を噴いてしまいます。これは何とか対処しなければなりません。
     
     
    mt-comments.cgi というコメント投稿用CGIのファイル名を変更するという
    一番お手軽な処置も試してみたのですが、敵もさるもの、
     
     エントリからCGI名をきっちりと抜き出して、 (;´Д`)
     
    refererもそのエントリのURLにして投稿してくるなど、全く通用しません。
     
    そこで、下記の方々の記事に倣って、URL欄(本文ではない)に書かれたURLが
    スパマーのURLだったら コメントを受け付けない、というコードを、
    直接 lib/MT/App/Comments.pm の中に書き込む方法を実践してみました。
    (お二方の素晴らしい情報に深く感謝いたします。)
     
    ■blog.bulknews.net 「MT コメントSPAM対策」
    http://blog.bulknews.net/mt/archives/000903.html
     
    ■こぶろぐ 「コメントスパムはURLで弾け! for MT3.11-ja」
    http://web.sfc.keio.ac.jp/~t02570ka/koblog/archives/000579.html
     
    この例では antispam.txt というテキストに、スパマーのURLをひたすら列挙しておき、
    コメント投稿のURL欄と見比べて、引っかかった場合は破棄するようになっています。
    この処置を施して antispam.txt に数十のスパマーURLを入れておいたところ、
     
     それ以来パタっと、スパムが登録されなくなりました!
     
    ログを見ると判るのですが、妖しいところからコメントCGIが
    断続的にアクセスされている状況は相変わらずですので、
    この新コードのブロックが機能してスパムを弾き出しているようです。
     
    この方法はURL欄にスパマーのURLが記載されていないと機能しませんので、
    この方法がメジャーになったら、スパマーはURLを捨てて、コメント本文のみに
    URLを貼り付けてくるかもしれません。そうなったら今度はコメント本文にも
    スパマーURLが含まれているかどうかをチェックしなければならなくなるかもしれませんね。
     
    尚、もしこの改変によって、普通にご来訪頂いた皆さまからのコメント投稿時に不具合などが
    発生しておりました場合は、お知らせ頂ければ幸いです(右バーには掲示板もございます)。
    今後とも宜しくお願いいたします。

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



    投稿者 CK : 記事URL | ブログ | | 2005/02/08 14:21


    « バレンタインに最適? 天使柄の 「iDiskTINY Luxury LOVER」

    トップに戻る

    ものすごく容赦のない(?)調査結果 »



    ▼ コメント ▼

    No.594   投稿者 : CK   2005年2月 8日 16:17

    そして見事に・・・antispamリストに載っていなかったURLのスパムはバッチリ受け付けました・・・ orz
    どんどんリストが膨らんでいきそうですが、頑張って対処していきます。(`・ω・´)


    No.595   投稿者 : クビツァ   2005年2月 8日 17:37

    初めまして。

    ポケベルユーザーでいつもここを拝見させていただいている者です。
    MovableTypeにはスパム撃退用プラグインが用意されているのでそれを導入するのはいかがでしょうか?
    データベースを自分で更新してくれる優れものです。
    私はここを読んでインストールしました。
    http://modelrr.net/taksblog/archives/2004/10/mtblacklist_20b.html


    No.598   投稿者 : fluorspar   2005年2月 9日 04:08

    MTコメントスパム対策について。
    コメントに『連続したひらがなが必要』となるようにする方法があります。
    http://fwn.sub.jp/blog/archives/000104.php

    ウチのサイトでは、海外のサイトからのコメントはこれで全て弾けるようになったので
    こちらの方が楽かもしれません。もしよろしければ一度おためし下さい。


    No.600   投稿者 : CK   2005年2月 9日 16:38

    ●クビツァさん
    はじめましてこんにちは(=゜ω゜)ノ ポケベルユーザの方が多くてとても嬉しいです。
     
    プラグインのご紹介ありがとうございました。私もスパム撃退法を調べているうちに
    MT-Blacklist のことは目にしていたのですが、一時期、MT-Blacklistを使うと
    トラックバックに文字化けが発生するという噂を聞いていましたので二の足を踏んでいました。
    MT日本版が正式採用したところを見ると、今は問題なくなっているのでしょうか。
    今度スパム来襲が来た際には試してみることにいたします('◇')ゞ
     
    ●fluorsparさん
    情報ありがとうございます~。この2バイト文字判別を使う方法はよく目にしますが、
    コードを見たのは初めてでした。わりと簡単に処置できるのですね~。参考にさせていただきます(・ω・)b
    あえて「ひらがな」を検出しているのは中・韓のスパムに遭遇された方の知恵なのでしょうか(汗
    近い将来日本語スパムが大量発生する可能性もありますので、その場合にはまた別の方法も併用するとベターかもしれませんね。


    No.619   投稿者 : あまやん@こぶろぐ   2005年2月11日 14:22

    遅くなってしまいましたが、トラックバックありがとうございます!
    ホントにあれは応急処置的なもので、いずれはきちんとしたプログラムを組まなきゃいけないのかな・・・と思ってます。

    書き込み時に、書き込み内容から生成したハッシュ値をプレビュー画面にhidden属性で仕込んでおいて、プレビュー画面を経由しないと書き込みできなくする、とかいう方法も最近は試されているようです。
    もし参考になれば・・・


    No.623   投稿者 : CK   2005年2月12日 01:47

    ●あまやんさん
    こちらこそ情報を参考にさせて頂きましてありがとうございます m(^_^)m
    あれ以来このルーチンが、大量のスパム屋さんのアクセスをほぼ100%弾いてくれています。本当に感謝感謝です。
     
    尚、その後の記事でもちょっとご報告致しましたが、antispam.txtに空行が含まれていると、
    URL欄なし=スパム判定になってしまうようでしたので、とりあえず応急処置として、
     
     (修正前) $banned_url{$_} = 'death';
     (修正後) if ( $_ ne "" ) { $banned_url{$_} = 'death'; }
     
    こんな感じにしてみました。
    本当はURLのexactマッチだけではなく、antispam.txtを「NGワードリスト」にして
    「NGワードを含むURLの場合は弾く」、という形にしてみようかなと思ったのですが、そうすると、
    あまやんさんの折角の連想ハッシュを使う軽快なマッチングルーチンが使えなくなってしまいそうでしたので
    ひとまず諦めました(´・ω・`) (マッチングのためにNGワードの数だけループさせるというのもちょっと・・・)
     
    プレビュー必須という機構も相当な効果がありそうですね~。スパム撃退の奥の深さにはビックリです。勉強させて頂きます('◇')ゞ


    No.1350   投稿者 : durian   2005年6月15日 21:23

    私も最近スパムコメントに悩まさたので、こちらのページにたどり着きました。
    MTは3.17に上げたのですが、comment.pmは156行しかありません。
    どのあたりに書き込めばいいのでしょうか。


    No.1357   投稿者 : CK   2005年6月16日 02:39

    ●durianさん
    ええと、おそらく違うファイルをご覧になっているのではないかと推測します。
     lib/MT/Comment.pm
    ではなく、
     lib/MT/App/Comments.pm
    のほうですね。それから、挿入する場所としては、
     require MT::IPBanList;
    という記述が見える中盤あたりでIPによるフィルタをしているブロックがあるのですが、
    その直後あたりが良いかと思います。
     
    なお、その後私はURL完全マッチ方式から、キーワード部分マッチ方式 に変更して、
    精度を上げようというトライをしていますので、そちらもよろしければご参考まで(=゜ω゜)ノ


    No.1443   投稿者 : spoko   2005年7月12日 16:56

    http://www.takubo.net/blog/archives/2005/05/post_34.html


    No.1452   投稿者 : CK   2005年7月17日 05:49

    ●spokoさん
    ('◇')ゞ


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


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


    ▼ トラックバック ▼

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

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