- 2009-03-27 金 16:22:03
- 今日の基礎体力
JavaScript でスパム投稿対策に「100%排除」って書いたけど
サーバー側の対策との合わせ技で100%達成してるので
そのスパム投稿対策も紹介しておきます。
1.ワンタイムチケット
フォーム出力の際、サーバー側で一度きりのユニークなIDを生成し
セッションに保存、同じIDをフォームにも埋め込んで出力します。
投稿された際このIDを照合すれば、
正規のフォームから投稿されたものだと判断できます。
尚、比較後すぐにセッション側のIDを破棄すれば
リロード(二重投稿)防止対策にもなります。
2.COOKIEにIPアドレス
フォーム出力の際、リモートホストのIPアドレス を COOKIEで送信します。
投稿された際、COOKIEのIPと実際投稿してきたホストの
IP を比較し、おなじなら同一ホストと判断できます。
スパム投稿では、一度得たフォームやCOOKIEを使いまわししてるようなので
これが違う場合は、自動投稿ロボットの可能性が高いです。
ただIPがコロコロかわる携帯端末などでは使えません。
【デメリット】
どちらも COOKIE必須 。
また1の場合はセッションの寿命が残ってる間に
投稿を完了しないと受け付けられないことです。
普通に投稿するユーザーの利便性を損ねないことはとても大切なんですが、
スパム投稿に含まれてるURLにはフィッシング詐欺のものもあるので
普通のユーザのためにもスパム投稿を見逃すわけにはいきません。
クッキー と JavaScript は ON でご協力お願いします。
- 新しい: hidden + IP でスパム投稿対策
- 古い: JavaScript でスパム投稿対策