CAPTCHAによるスパム対応

CAPTCHA画像の例 皆さんは、CAPTCHA(キャプチャ)って、ご存知ですか?ブログでコメントを記入したり、何らかのサービスで認証を受ける際に見られる、文字が歪んだような不思議な画像ですね。フォームに情報を入力する際、「画像の中に見える文字を入力してくだい」といった具合に入力を求められたりします。

CAPTCHAとは「Completely Automated Public Turing test to tell Computers and Humans Apart」の略で、 「コンピューターと人間を区別するための完全に自動的な公開判別テスト」という意味です。要するに、「このフォームに入力しようとしているのは人間かコンピューター(自動プログラム)か?」を識別するための仕組み、というわけです。その意味では、必ずしも「画像」でなければならないわけではないのですが(実際、音声によるCAPTCHAというのも存在します)、もっともポピュラーで目にすることが多いのは、上記のような画像形式でしょう。

さてこのCAPTCHA画像、自動プログラムによるスパム攻撃を防ぐという点で意義のある仕組みだと言えます(画像の中に書いてある内容/文字列を識別できるのは人間に限られますので)が、アクセシビリティユーザビリティという点で考えると、残念ながらいろいろと問題があります。たとえば:

  • 視覚障害者にはCAPTCHA画像の中身が認知できない。全盲でなくても、コントラストやノイズの乗りかたによっては、特に弱視のユーザーにとっては、見分けが難しくなる。(アクセシビリティ上の問題)
  • 晴眼者であっても、CAPTCHA画像の中身は見にくく、文字を見出して入力するという作業は面倒くさい。(ユーザビリティ上の問題)

アクセシビリティ上の課題を解決しようとする動きもあるようで、その努力には敬意を表したいと思いますが、たとえば音声読み上げにも対応したCAPTCHAが一般化したとしても、ユーザーに1ステップ余計な入力作業を強いることに変わりはなく、ユーザビリティの面ではベストな解決とは言えないような気がします。できれば、システム側で自動的にスパムをはじくこと(ユーザーには一切余計な手間をかけさせないこと)が理想ですね。

ちなみに、当サイトはMovable Type 4を使っていますが、コメントの受付機能が、初期状態では以下のようになっています。

いずれの場合も、正直、面倒くさいなあという印象です。特に「Type Key」を入れろと言われたところで、一般的なWebユーザーには、何のことやらさっぱりわからないのではないでしょうか?

当サイトは、ユーザビリティ/アクセシビリティを扱うサイトなので、意地でもこのような方策(サイトの運営側/システム側の都合で、ユーザーにひと手間かけさせるような手法)は使いたくないと思っています。代わりに「NotJapanese Lookup」というプラグインを使わせていただいています。「The blog of H.Fujimoto」のこちらのページからダウンロードできます。日本語(全角文字、ひらがな、句読点)をある文字数(任意で設定可)以上含まないコメントやトラックバックをスパムとみなしてフィルタリングする機能拡張です。スパムコメントの大半が外国語(英語や、最近ではフランス語、ロシア語など...)である現状、日本語のサイト(ブログ)であれば、これで充分かもしれません(実際、スパム対策前は一日にたくさんのコメントスパムがあって、Movable Typeのcgiに異常な負荷がかかり、サイトがダウンしてしまったことがあるのですが、このプラグインを入れてからは、ゼロといってよいほど、スパムを寄せ付けなくなりました)。

もちろん、もっとも憎むべきはスパムをしかけてくる輩ではありますが、だからといって、ユーザー側に負担を求めるような方策は、できるだけとらないように、工夫したいものですね。