コメントスパム対策・理論編

過去にも何度か取り上げましたが、自分が手がけてきたいくつかのサイトでは、Perlスクリプトで実装されたWEB出席簿なるものを導入・拡張して使っています。この出席簿、全て人手で出欠管理するよりかはそれなりに便利なのですが、いかんせん元となったスクリプトが結構古いものなので、現状ではセキュリティ的に甘い面もいくつかあります。


今回は、以前設置したある出席簿の現管理者であるS君から、「最近、出席簿に変な登録が多くて困ってます。助けてください!」との連絡を受けました。さっそく、現状把握とその対策案を調査。典型的なコメントスパムで、英語圏の人が(おそらく)機械的に投稿しているみたいです。というわけで、以下の対策を考えました。

  1. captcha*1を設置する(→ captchaの例
  2. 認証コードに漢字を入力させる(→ 403 Forbidden
  3. 本文に全角を含まないコメントを弾く*2

いろいろ考えたのですが、個人的な好みと経験値を積む観点から、1の対策をしようと思います。


というわけで、captchaについてCAPTCHA - Wikipediaを参考にしながらちょっと調べてみることに。出席簿がPerlで実装されているので、今回はAuthen::Captchaを使ってみようと思います。


具体的な導入方法は、また後日。

*1:スペルがいつも覚えられない。自分だけ…?

*2:はっきり覚えていませんが、確か別のBBSのスクリプトでこの対策をした記憶あり。