/ / 最新

swk's log - コメントスパムと戦ってみる

2006-04-09

* コメントスパムと戦ってみる [logging]

結論から言うと,敗北です.

kuttukibbs に,できるだけ簡単な修正を加えるだけでどこまでコメントスパムをブロックできるか試してみた.

巷でよく行われているのは,「2 byte 文字がいっさい含まれていないものは無条件で弾く」というもの.日本語サイトの場合,ほぼこれで問題無いわけなのだけど,なんていうか,ほら,技術的に 負け って感じがするじゃないですか(ぉ.というわけでもう少しギリギリの所で戦えないかと試してみたかったわけですよ.

戦略は以下の通り:

  • 投稿 form に hidden な input 要素を埋め込んでおく.これがが送られて来なかったら弾く
  • 投稿 form のページで cookie を配る.書き込みリクエストのときにこの cookie が一致しなかったら弾く
  • いかにもな NG ワードを弾く.いまのところ ringtone, casino, cialis, viagra が対象
  • 妙にテンションの高い書き出しを弾く.いまのところ /^(cool|very good|good|nice|great|excellent) (job|site|website|work)\W/i が対象

やってみるといずれもそれなりに有効で,そこそこ引っかかってくれる.最初の hidden なタグを埋め込んどく程度の低レベルなやつでも,全く無力というわけではないみたい.

だけど,ある特定の記事 (具体的には [2006-03-07-2] なのだが) については,これらをすり抜けて来る奴ら続出.強力なのにマトかけられちゃったっぽい.というわけで「この記事限定」で「2 byte 文字が含まれておらず,かつ URL らしき文字列で終わっているもの」はすべて弾くことにした.

一応これでいまのところ完全封殺.なのだけど,勝ち負けで言ったら敗北ですな.

Movable Type とかだと,いったん必ず Preview ページを表示して,そこで hidden なパラメータを配るなんて方法がよく使われているらしい.でもこれも対策が取られるのは時間の問題かなという気もする.

結論:

  • 2 byte 文字の有無でのフィルタリングは,日本語サイトの場合,かなり最適に近い現実解っぽい
  • 真面目にやるならベイジアンフィルタでもかますのが正しそう
関連記事:
[2007-04-21-1] コメントスパム対策として,計算問題を入れてみた
[ コメントを全部見る / コメントを書く] [ TrackBack ( )] [固定リンク]

* [Pd8ruxef2l] goose jacket yoke wong improvisation in ... (2014-10-23 18:38:30)

* [Whktjmfl] France - In the past few months, we expe... (2014-04-25 18:41:30)

* [Fkhluizl] , <a href="">オ... (2014-04-14 22:49:27)

最終更新時間: 2009-01-04 15:31


Shingo W. Kagami - swk(at)kagami.org