- 2009-03-28 土 01:53:13
- 今日の基礎体力
スパム投稿だけを別ログに取っていたら共通点が見えてきました。
しかも2パターンに絞られます。これは、うちに来てる
AHOな自動投稿プログラムは2種類しかないってことです。
スパム投稿パターン1 AHoo
特定のIPから、不定期に、本文が異なる内容を投稿。
フォームは集計以前に得たようで、リクエストされた痕跡は無い。
●クッキー無し
●UAがどれも同じ
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 4.3 (build 01218))
●$_POSTのうち、パスワードとワンタイムチケットはまったく同じ。
その他の内容はバラバラ。
スパム投稿パターン1’ AHoo’
不特定のIPからの投稿である以外は、スパム投稿パターン1と同じ。
パスワードとワンタイムチケットがスパム投稿パターンAと同じなので
ネタ元が同じ。
スパム投稿パターン2 AHoo+C
先ずフォームのリクエストがあって、その2、3秒後に初投稿。
その後短い間隔(5~20秒おき)で、国が異なる別ホストより、
POSTとCOOKIEが全て同じ内容の投稿が1~3回程度続く。
フォームを収集したIPと初投稿のIPは同じ。
●クッキー有り
●UAがまたく同じ
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
【考え中】
AHoo と AHoo’ は、
一度収集したフォームをず~っと使いまわしのワンパターン。
hidden でフォームに埋め込んだ値まで一緒なので
この値の整合性をチェックすれば完全にハネることが出来ます。
AHoo の方はIPチェックで完全にシャットアウトでもいいくらい。
これに比べると AHoo+C は、
フォームを収集しながらリアルタイムで投稿してきます。
クッキーも備えブラウザに見せかけている巧妙なヤツです。
2度目以降投稿については、AHoo同様
hidden でフォームに埋め込んだ値の整合性をチェックすれば
完全にハネることができます。
【対策】
フォームの出力の際、
リモートホストのIPアドレス を hidden で埋め込んでおく。
投稿された際、
$_POSTのIPと$_SERVER[‘REMOTE_ADDR’]を比較。
一致しなければスパムボットと判定。
ただし、IPアドレスをそのまま埋めると、
プログラムでIPの書き換えを可能にしてしまうので
複合可能な方法で暗号化した値をにするなどの工夫が必要です。
あわせて、似たようなダミーの値をフォームに複数個
埋めておけば、プログラムでの解析をさらに困難にできます。
これなら COOKIE も SESSION も関係なくひろ~く応用できます。
もちろん、AHoo+C の初投稿はスルーなので
IPや投稿内容をチェックしてハネるあわせ技は必須です。
hidden で埋め込む値を IPアドレス にしたのは、
収集したフォームこそが投稿業者の資本であり、
フォーム収集元が明らかになることを一番嫌うと考えたからです。
フォーム収集時のIPでなければ投稿できないけど、
そのIPで投稿すると肝心なフォーム収集元が絞り込まれる。
収集しても使えないフォーム。
業者にしてみればホント嫌なことでしょう。
これがこの対策の一番の狙い。
スパムをハネるだけでなく投稿そのものを減らす対策になります。
この対策を施している旨をサイトに書いとくとさらにいいかも。
- 新しい: スパム投稿の発信元を追跡してみる
- 古い: ワンタイムチケットでスパム投稿対策
コメント:0
トラックバック:0
- この記事のトラックバック URL
- http://beatnik.jp/blog/archives/219/trackback
- トラックバックの送信元リスト
- hidden + IP でスパム投稿対策 - PHPで翻訳三昧 より