HOME 備忘録 書き込む

ゲストブックの落書き防止


Dec 20, 2006

紫藤もゲストブックの落書きには悩まされていましたが、 次の3つの対策を採ることでほぼ完全に排除することができました。
種明かしをしてしまうとフィルターをすり抜ける落書きをされることが心配ですが、 同様の悩みを抱えるサイト運営者のご参考になればと思い、紫藤の防止策を公開します。

  1. "http://" という文字列の数が全行数の半分以上のものは落書きとみなす。
    ほとんどの落書きはやたらとこの文字列を含んでいるのでこれでかなりの落書きを排除できます。 また、通常の書き込みで、この文字列が全行数の半分を超えることはまず無いので、通常の書き込みは このフィルターを通過します。
  2. 単語のブラックリストを作り、そのリストに載っている単語を含む書き込みは落書きとみなす。
    このサイトの内容から考えて、"viagra" などという単語を含む書き込みはありえないので排除します。
  3. 日本語のゲストブックについては 2 文字連続するひらがなを含む書き込みを許可し、それ以外は排除。
    ひらがな 1 文字だけだと、文字エンコードの関係上、中国語の書き込みを完全には排除できません。 また、たいていの日本語の文章は 2 文字以上連続したひらがなを含みます。
以上の対策はごく簡単なプログラムで実現できます。落書きにお悩みの方は試してみてください。 紫藤のサイトは一日 100 回以上落書き攻撃を受けていますが、今のところほぼ完全に排除できています。