2007,04,08, Sunday
アンチスパム
雨のあとの黄砂の量にうんざりしているハスキーです。
最近このブログにスパムコメントやスパムトラックバックが投稿されています。 jpドメイン直のブログだから簡単に見つかっちゃったんでしょうね。 投稿されるスパムは全て英語。 なので読む前に削除&投稿IPをブラックリストに追加してます。 でも投稿時間やらを見てると、どうも機械的に適当なプロキシサーバを経由して一斉投稿されているようです。 そこで考えた対策は次の4つ。 その1.jpドメイン以外の投稿を弾く その2.半角文字オンリーの投稿を弾く その3.ホスト名変換できないIPを弾く その4.ブラックリストをIPの他にホスト名も対応できるようにしてドメイン単位で弾く その1を実行すればかなりの防御率になると思うんですが、なんというか対策が安直すぎるのと、たまにjpドメインで踏み台にされてるPCがあるので防御率が100%になるわけじゃない。って理由で却下。 その2は防御率がほぼ100%になると思われますが、日本語変換できないときとかのローマ字でのコメントとか弾かれちゃうとかいうレアケースを考えて却下。<システム屋っぽい判断基準 その3ならとりあえず数割の確立だけど確実にスパムだけを弾けるので、これを実装してみました。 実際の成果はというと、スパム数が1〜2割程度にまで減りました。まずまず。 その4はできるんだけどほんのちょっと実装がめんどくさい(その気にならなかった)ので却下。 そんな状態で数日様子をみていましたが、減りはするけどなくなりはしない。 で、考えたのが、その5.投稿フォームからの投稿じゃない場合は投稿を受け付けない。 機械的にPOST送信されまくってるのが原因じゃないかなーと思って。 でも遷移元のURLは偽装できそうだし、携帯とかって遷移元の情報持ってたかわかんないんで投稿フォームに仕掛けを仕込みました。 投稿フォームを開いた日、もしくはその次の日の投稿で無いと受け付けないって仕組み。 投稿フォームを開いてからコメント書いてるうちに日付が変わっちゃうなんてことは十分考えられるけど、投稿フォームを開いてからコメント書いてるうちに2日経つなんてことはありえないんで。 仮にスパムプログラムが投稿フォームを覚えていても、その投稿フォームの投稿が受け付けられるのは翌日まで。それ以降は投稿してもログに反映されない。 しかも投稿が失敗した旨のメッセージは表示しないんで人間が目視しないとスパムが投稿できたかどうかわからない。 ロボットなんて所詮そんなもんだからなぁ。 とりあえずこれで様子を見てみます。 まぁこれでうまくいかなくても、それはそれでまた知恵をしぼる楽しみがあるんでいいや。 |
コメント
コメントはありません。
| | URL | | | |
コメントする
|
この記事のトラックバックURL
http://tenohira.jp/tb.php/13
トラックバック
トラックバックはありません。
| | |
|