消極的なCAPTCHA

「人間が入力したかどうか検査」であるCAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart)も最近は珍しくなくなり、それにつれて、CAPTCHA対応スパムも出てきた。CouchDbのデモサイトでもこれに困っていたらしいが、Negative-CAPTCHAと呼ばれるしゃれたアイデアでアイデアでスパムを撃退しているようだ(Sofrとかの掲示板がそれ)。

原理は難しくはない。フォーム内にユーザーには見えない隠し項目(但し、Type=Hiddenではない)を設定し、nameをロボットが間違えやすい"email"のような名称にするだけ。
<input type="text" name="email" style="display:none">
これでアホなロボットは人間サマには見えないemail欄にテキトーなメールアドレスを埋め込んで投稿してくるので、CGI等のサーバープログラム側でemail欄に何か入っていれば捨てる、という処理をすればよいとか。
Damien Katz: Negative CAPTCHA:
When a human user fills out the form, the hidden field will always be blank. But when filled out by a spam bot, it doesn't know the field is supposed to be hidden, so it adds a bogus email address and submits the form. When the back-end code sees the email in the posting, it knows the email was filled in by a bot and ignores the whole submission.
ふーん、へぇー、ほぉー、っていう感じです。

Via Damien Katz: Negative CAPTCHA

5 件のコメント:

guesthouse さんのコメント...

これ、とある掲示板で実施しています。

たしかにスパムコメントは激減するんですが、最近のスパマーの中には一つのフォームについてそれぞれのフィールドを空にするバリエーションを全部ためしてくるのもいて、そういうのは残るんですよね。

感覚的にはだいたい10分の1ぐらいになってると思うので、いい方法だとは思います。

xpotechi さんのコメント...

なるほど、やはり一定の効果アリですか。どこかのブログで読みましたが、日本人対象と予め限定できるなら、例えば「『東京』の読みをひらがなで入力して下さい」という設問を入れておくのも簡単にできる対策ですね。

匿名 さんのコメント...


http://www.geekpage.jp/blog/?id=2007/1/14
外国からのコメントスパム対策
じゃない?

xpotechi さんのコメント...

舌足らずでした。「読み手を日本人対象と予め限定できるなら」の意です。おっしゃるとおり、外国のスパムよけですね。

匿名 さんのコメント...

ハニーポット・フィールドによるスパム・クローラ対策。
http://digit.que.ne.jp/visit/index.cgi?2006%c7%af4%b7%ee#phoneypot