そしてまた掲示板 SPAM 対策
NG ワード規制でほぼ 100% フィルタリングできてるんだけど、1日ウン十通の通知メールを受信すること自体うざいので、さらなる門前払い&再来防止の手はないものか。要求仕様は、ユーザー側の使い勝手をなるべく変えないこと(余計な手間をかけさせない)。プログラム側でセッション管理を行わないこと(1セッションごとに処理が完結する)。というわけでいくつかのアルゴリズムを考えて/調べてみた。
- マシンパワー要求
- Javascript で10秒ぐらいかかる計算をやらせて、答えが合ってないと投稿できないようにする方式。例としていくつかのサイトに載ってる素因数分解をやってみた。そしたら、あるサイトでは計算に5秒以上かかると IE が警告を出してきた。うーん、これじゃ使えないなぁ。でも別のサイトでは黙って延々と計算してた。あれれ? どっちみち Javascript を無効にしてる正当なユーザーのために代案が必要になるわけだが。
- 日本語画像コード
- 画像で示した漢字をテキストボックスに入力してもらう方式。毛唐除けにはなる。でも日本人や中国人のスパマーに狙われたらアウト。
- 投稿確認画面
- 自動投稿に対してはけっこう効果があるらしい。でもプログラム大改造じゃのう…。
- せっかち規制
- 自動投稿を Apache のアクセスログで見ると、投稿フォームを GET して2〜6秒後に POST してる場合がほとんど。なので、6秒以内に投稿されたらカエレ!とか。
- 404を返す
- NG ワードが含まれてたら 200 の代わりに 404 を返す方式。これで自動投稿の再来がかなり減ったという人がいる。試してみる価値はありそう。