2006年01月06日

さて、一日経過してどうなったか?

昨日の掲示板SPAM対策のログを調べてみた。
やっぱり、俺を一番悩ませていた「色んなURLを大量書き込みしてくるやつ」が4件ほど釣れました。全てがURL書き込み件数のチェックで引っかかってます。

URLの書き込み件数超過チェックに引っかかるってことは、もう一つ仕掛けた「パラメータの変更」は突破しているということで、まさか人力か、そうでなければHTMLのフォームをわざわざ解析して送信している(解析したって限界があるから、これをわざわざやるとは考えにくい)可能性がある。

具体的に変更したパラメータというのは、うちの掲示板に使っているyy-boardの「mode」というパラメータの値である。
この手の掲示板cgiというのは、ひとつのcgiで記事閲覧から書き込み、さらには記事削除と様々な処理を行うケースが多いので、この「mode」のように何らかの形で処理モードを渡して処理を切り替えているものが多い。今回やったのは、書き込み時に設定される処理モード「regist」を別の文字列に書き換え、それまでの「regist」では書き込みが行われないようにした、という対処方法である。

ほとんどの場合の書き込み自動化プログラムは相手のCGIの仕組みに合わせて固定的に作られる(はず)ので、yy-boardが相手なら書き込み時には「mode=regist」の値を送信するように作るはずである。これでネット上にあるyy-boardのほとんど全てには書き込めるはずで、今回のSpammerのような悪意のあるプログラムでなく、単純に掲示板のビューアとして動作するソフトウェアなんかも存在する。

この固定的なアプローチが通用しない場合、書き込みの自動化は非常に難しい。HTMLで書かれたフォームの意味を動的に解釈することなど(あてずっぽうでもなければ)不可能だからだ。

厳密に言えば、今回変更したのは「mode」というパラメータ名ではなく「mode=regist」として表現される「regist」という値だ、という点が対策としては若干手抜きと言える、yy-boardというプログラムのルールにおいては「mode」は処理モードなので、正規の投稿フォーム画面を読めば書き込み画面が「mode」に何を設定しているかはある程度は解釈可能である。

しかしそんなことをやるメリットが思いつかない、そんな乱暴な対策を取るサイトがそんなにたくさんあるとは思えないからだ。となると他にこの対策を突破する方法は「人力書き込み」という最強の方法がある、制限しきれない様々なIPアドレスからアクセスされれば正規ユーザとなんの区別もつけられないからこのレベルでは対策しようがない。

でも、それはふつーに考えてやらないよな・・・
そりゃ、物価の安いどこかの国ならn件で10円とかでも喜んでやる人達がいるかも・・・とか恐い想像もできなくはないけど、それは恐いから想像したくない(笑)

というわけで、一体どうしてあの対策を突破してくるのかいまいち解らないのだが、突破してくるやつに対してはURL書き込み件数のチェックで弾けているので当面は問題ない。パラメータの変更によって弾いた例は現段階ではまだログに出ていないが、これも近いうちに出てくるんじゃないかなーと思う。

ところで、今回探してみたら、SPAM対策済みの掲示板スクリプトっていくつか配布されてました。これ使えばよかったのかな(笑)

いちお、前のバージョンの掲示板が独自に改造してたこともあって、その改造コードを移植するよりはと思って自力で対策したんですけれど、先日掲示板を新しいバージョンにした時にどのみち改造コードの移植はやってしまったので、これははっきり言って無駄にコードを書いてしまったということになる。プログラマとしてはあまり感心できないことである。

書く前にちゃんと探しましょう(笑)
posted by Jack at 01:24| Comment(2) | TrackBack(0) | Web系 | 更新情報をチェックする

2006年01月04日

掲示板SPAM対策まだ完結してなかった編

さてさて、掲示板SPAM対策、色々やってたんですが、今日掲示板を見て愕然としました。

なんか、多種多様なURLがどっさり書いてある。

50件以上は書いてあっただろうか、これじゃ他の記事が読めないし・・・
これだけ多種多様にURLを書かれてしまうと、書き込み禁止ワードにどのURLを設定していいものやら解らないし、設定したところでまた新しいパターンが登場すればそれまでです。

さあ困った、どうする?

そこで今回は、本文中に書き込まれるURLの件数を制限するチェックを追加しました。URLが6件以上検出されるとエラーを返して書き込みを止めます。
相手が人力かつやる気まんまんな相手の場合、ひとつの書き込みを5件以内に分割して大量書き込みなんてこともあるかもしれませんが、恐らくそこまではやらないでしょう。

また、最近2chみたいにttp://でURLを書いていくタイプもあったので、ttp://の場合もばっちり捕まえます。

それから、大量にURLを書くわけではなく、一件か二件くらいしか書かない代わりにエロ宣伝文句満載のSPAM書き込みも最近増えてきてます。こいつが手動なのか自動なのかは解らないですけど、手動書き込みのパターンがあったとしても必ず自動で書き込んでくる奴もいるはずなので、先日のバージョンアップした時に元に戻っちゃってた、フォームパラメータ名の変更も再度やってみました。

同じCGIスクリプトを狙って自動化された書き込みの場合は、これですっかり止められるはずです。

また、今回、それぞれのチェックに対して、実際にチェック処理にひっかかってエラーを返した際にログを記録するようにしました。これで、実際に効果があったのかも含めて把握できるはずです。その報告もここのブログでやっていきたいと思います。

ある程度効果が上がったら、掲示板SPAM対策まとめサイトでも作りましょうか。プログラムを直接改造するタイプの対策を挙げているサイトはあまりなかったようなので、これはこれで意味があるかもしれませんね。
posted by Jack at 23:51| Comment(0) | TrackBack(0) | Web系 | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は180日以上新しい記事の投稿がないブログに表示されております。