Re: captcha



中根です。

On Mon, 22 Aug 2005 00:56:56 +0900 (jst),
Koichi INOUE <inoue@xxxxxxxx> wrote:
>  おお、目からうろこ、と思ったのですが、もし5分かかる処理でも同時に100個
> のスレッドから取得処理をすれば1個あたり3秒なのでそんなに困らないですよね。
>  同じIPアドレスからは同時にひとつのリクエストしか処理しない、など同時に
> 複数取得を試みられることを防止すれば結構いい線いけるかも知れません。

眠い頭でも、これは考えました。
セッション管理をちゃんとした上で、同じ IPアドレスからのリクエストに対
しては、同時に複数受け付けないようにする、つまり、ユーザ Aがリクエスト
した後に、ユーザ Bがリクエストを出した場合、ユーザ Aのリクエストが完全
に処理されるるか、セッションが expireするまでは、ユーザ Bは待たされる、
というような感じにすれば、まあなんとかなるのかな、とか思っていました。

しかし、複数の IPアドレスからやられてしまえば、やはり少なくとも 5分な
ら 5分に一つはリクエストが完了してしまうわけですからだめですね。が、も
う少し考えると、この方法を使ってでもリクエストを完了させたいのは、私た
ちのようなユーザか、悪意のあるユーザか、ということになるでしょうから、
一度にこの方法で受け付けられるリクエストの数を制限する、などという手も
あるかもしれません。 (しかし、これでは悪意のあるユーザのせいで、善意の
ユーザがリクエストを出せなくなるかも…。) なかなか難しいですね。

やはり Captchaを使う人の立場で考えると、必ずしも数の多くないユーザのニー
ズを満たすために、必要以上に大きなセキュリティ・ホールを造りたくない、
という気持ちになるのはよく分かりますから、やはり話は簡単ではないですね。

ところで、今この件に関する情報を集めてみようと思っていろいろと見ていま
すが、 Wikipediaのエントリー
http://en.wikipedia.org/wiki/Captcha
がなかなか参考になりました。特に、悪意のあるユーザがどのようにして
Captchaを突破しようとしているかというのは、なかなか興味深く、これを読
んだ後だと、上述の私の浅はかな考えではだめそうな気分になりました。

中根雅文