CAPTCHA、音声、スライダーetc…フォームのスパム対策方法まとめ

アクセスの多いサイトでは特に、スパムによるメッセージ送信やアカウント登録を防ぐための対策が欠かせません。
本日はスパム対策の定番「CAPTCHA(キャプチャ)」をはじめとする、さまざまなフォームのスパム対策方法についてまとめてみたいと思います。

※CAPTCHA(キャプチャ)とは「Completely Automated Public Turing test to tell Computers and Humans Apart」の略で、応答者がコンピュータでないことを確認するために使われる認証技術のこと

googleはキャプチャ入力の代替方法も用意。電話音声による確認という方法が取れる

googleアカウントのCAPTCHA

スパム対策の基本は、「人」ではないとできないこと

スパムメールは何らかのツールやプログラムを使って自動的に大量送信されているものです。ですので、当然ながらフォームに訪れているのが人間なのかどうかを判別するための手法がスパム対策であると言えるでしょう。

極端な話、自動的に送れないようにフォームを複雑な内容にしてしまえばほとんどのスパムは減らせるでしょう。しかしそれは同時に、フォームの前の人間(=ユーザー)にとっての使い勝手も激しく低下させてしまうことになります。

有名なスパム対策としては「CAPTCHA(キャプチャ)」などが挙げられますが、このようなスパム対策のための手法が時にユーザーのフォーム入力そのものを邪魔してしまうこともありえます。

CAPTCHA(画像認証)がフォームのコンバージョン率を低下させた、2つの事例
https://f-tra.jp/blog/column/5013

スパム対策では、やみくもに送信しにくくするのではなく、いかにフォームのユーザビリティを落とさずにスパムのみを除外するかが鍵となります。

海外EFO情報: CAPTCHA(画像認証)を使うべきでない理由と、ストレスを軽減する10の方法
https://f-tra.jp/blog/overseas/4683

フォームのスパム対策方法

前置きが長くなってしまいましたが、以下、スパム対策の手法についてまとめていきます。

スパム対策の手法一覧

それでは順番に紹介していきます。

テキストキャプチャ

テキストキャプチャの例。

テキストキャプチャの例。

人工知能には解読しにくいよう、歪んだりかすれたり読みにくく加工されたテキスト情報を、用意された入力欄に入力することでスパムでないことを証明する、キャプチャの代表選手です。

現在最も多く普及しているスパム判別方法のひとつだと思います。
さまざまな種類があり、見難い画像をスキップしたり、音声でスペルのヒントを与えてくれるものまで存在します。

有名なのはreCAPTCHAというサービスで、二つの読みにくい文字列を入力させることでスパムを判別しつつ、同時に書籍からスキャンした文字情報のデジタル化を行うという画期的な仕組みとなっています。
※現在reCAPTCHAはgoogleによって提供されており、文字の入力以外にもさまざまな手法でスパムを判別しています。詳しくは後述。

しかし、スパム側の画像解析技術の進化によりキャプチャが破られてしまうこともあります。そのためどんどん画像加工が複雑化し、人間にとっても解読することが難しい場合があり、フォームの完了率にも悪影響を与えている場合があり、問題視されています。

音声キャプチャ

音声キャプチャは、画像ではなく音声でランダムな数字を流し、それを入力させることでスパムを判別します。

音声キャプチャ

音声キャプチャ

音声キャプチャの利点は、テキスト入力に比べアクセシビリティに考慮した方式という点で、スクリーン・リーダーでも使用することができます。

もちろん数字読み上げ音声のバックには雑音が流れており、人工知能による解析を妨げています。
しかしこちらもテキストの場合と同様に、音声認識技術の進化による難易度が上がっている傾向にあります。

スライダー型

スライダー型のCAPTCHAは、その名の通りスライダーをある位置にドラッグすることで人工知能を除外するというアプローチです。

スライダーの位置のバリエーションがそこまでは多くないようにも感じので、突破される可能性は高いかもしれません。

 

ブログのコメント欄用プラグインとして配布されているslidercaptchaはシンプルなスライダーUIを用意。

minteyeが提供するのは、渦巻いている画像(広告)に対し、スライダーをある位置に移動することで、正しく表示させることができ、これにより人間だと認識する

minteyeが提供するのは、渦巻いている画像(広告)に対し、スライダーをある位置に移動することで、正しく表示させることができ、これにより人間だと認識する

クイズ型

TextCaptchaは、下記のように誰にでも答えられるクイズを出題することでスパムを除外する仕組みとなっています。

  • 「Flower」「resting」「lawyer」「campsite」: このうち「c」から始まる単語は?
  • purple, penguin, blue, white and red:この中に色はいくつある?
  • 1 + sixは?

このような質問は人工知能に破られてしまう可能性が高いことと、言語の対応が膨大であることなどから、広くサービスとしては提供されていないことが多いようです。

パズル型

スライダー型の発展形です。パズルのピースを埋めるようにドラッグすることで人間の動作と認識します。
ドラッグの起点と終点がランダムになるという点ではスライダー型よりも複雑な印象です。

画像の空いている部分にッパズル型のピースをドラッグ&ドロップする

Capy社が提供しているツールでは画像の空いている部分にッパズル型のピースをドラッグ&ドロップする

keycaptchaが提供するパズル型CAPTCHA。こちらはWordpress等のプラグインとしても提供されている

keycaptchaが提供するパズル型CAPTCHA。こちらはWordpress等のプラグインとしても提供されている

ミニゲーム型

こちらもスライダー型の発展形です。さまざまなお題の簡易ゲームが出題され、主に簡単なドラッグ動作によりゲームクリアすることで認証を行います。
パズル型よりも複雑なため精度は高いと言えるでしょう。

Are You A Human?が提供するミニゲーム型のCAPTCHAの例。 「選手をコートに入れて」「ランナーにメダルをあげて」「赤ちゃんに食べ物をあげて」「ピザにトッピングして」などお題はシンプルなものが多い。

Are You A Human?が提供するミニゲーム型のCAPTCHAの例。
「選手をコートに入れて」「ランナーにメダルをあげて」「赤ちゃんに食べ物をあげて」「ピザにトッピングして」などお題はシンプルなものが多い。

Capyアバターキャプチャ

Capy社が提供する「アバターキャプチャ」も、同様にお題に対してドラッグでクリアするというもの。

画像認識型

画像の内容を答えることで人と人工知能を区別するのが画像認識型CAPTCHAです。

引用元:http://www.seopher.com/articles/microsoft_stole_kittenauth_renamed_it_and_claimed_it_as_their_own_

KittenAuthは猫の画像をすべて選んでから送信ボタンを押下することでスパムを判断する 引用元:http://www.seopher.com/articles/microsoft_stole_kittenauth_renamed_it_and_claimed_it_as_their_own_

実際には、アクセシビリティの問題で普及していません。

友人認識型

画像認識型の発展型として登場したアイデアとして「ソーシャル認証」があります。
世界的SNSであるfacebookが2011年にこの認証を試していると発表しています。

この「ソーシャル認証」では、友人の写真を幾つか表示し、名前をつけるように求めることで本人を判別するというもの。スパム対策というよりは不正ログインに対する対策とも言えそうです。

ですが、すべてのfacebookの友人の顔から名前を解答することができるかどうかは困難の場合があり、この方法ではまだ課題があると言えるでしょう。

サーバーサイドによる検出

ここまでCAPTCHAによるスパムの検出方法について紹介してきましたが、ここからはその代替としての手法を紹介していきます。
代替の方法は、ユーザーの手をほとんど煩わせないようになっていることがポイントです。

1つ目はサーバーサイドによるスパムの検出技術が挙げられます。

例えばWordpressというブログシステムのプラグインとして有名なAkismetは、自動的にスパムコメントを駆除してくれます。
仕組みとしては、送信されたデータの内容(発信元(IPなど)や内容、送信頻度など)を分析し、スパムを判断しているようです。

もちろん完全にブロックできるわけではありませんが、サイトによっては大半のスパムをブロックしてくれるようです。

クライアントサイドの検出

スパムによる入力は、人間のそれに比べて圧倒的にスピーディです。
これを利用し、ページがロードされてからフォームが送信される時間との差が例えば5秒以内であるような時は、フォームを再試行するように求めるというような仕組みです。

ハニーポット式

Honeypotと呼ばれる手法は、ユーザーからは見えないがソースとしては存在する(スパムからは認識できる)フォーム項目を追加することで、スパムを検知するという方法です。

もちろん完全ではありませんが、多くのユーザーが気づかない方法でスパムを除外することができるようになります。
いっぽうで、隠していた項目もスクリーンリーダーは読み上げてしまうためにアクセシビリティの点では優れた方法とはいえないでしょう。

jsによるフィールド追加

ハニーポットとは逆の発想で、javascriptなどで別途フォーム項目を読み込むなどして、ユーザーには閲覧できるもののスパムには読めない入力項目を作成するという方法も手法としては可能なのではと思います。
こちらも同様にアクセシビリティなどの問題はあると思います。

オープンIDの追加

フォームの内容にもよりますが、facebookやTwitter、Google,Yahooなどのログイン機能を用いることで、スパムによるフォーム送信は難しくなります。

Yahoo!IDでのログイン機能

Yahoo!IDでのログイン機能

もちろんこのような外部のおサービスをすべてのユーザーが持っているわけではありませんので、注意が必要です。

参考:Googleの新しいreCAPTCHA

現在Googleが提供している上述の「reCAPTCHA」ですが、2014年12月の公式ブログによると、これまでのテキスト入力型のCAPTCHA方式のかわりに、下記のようにチェックボックスをクリックすることをユーザーに求めるだけの新しいシステムを提案しているようです。

新しいreCAPTCHAのイメージ

新しいreCAPTCHAのイメージ

チェックボックスの入力そのものだけではなく、入力前、中、そして後の動作についても解析してスパムを判定するような仕組みとなっているようです。
また、判断がつかない場合のみ従来のCAPTCHA画像を表示するようです。

下記はモバイルの場合のCAPTCHAですが、画像認証式のものとなっています。

チェックボックスだけでスパムかどうか判断できなかった場合に表示されるキャプチャ(モバイル版)。 引用元:http://googleonlinesecurity.blogspot.jp/2014/12/are-you-robot-introducing-no-captcha.html

チェックボックスだけでスパムかどうか判断できなかった場合に表示されるキャプチャ(モバイル版)。
引用元:http://googleonlinesecurity.blogspot.jp/2014/12/are-you-robot-introducing-no-captcha.html

さまざまな方法のスパム判定が組み合わされており、ユーザーへかかる負担を極力減らすための創意工夫が感じられます。これから非常に期待できそうです。

最後に

いかがだったでしょうか。本日はフォームのスパム対策方法をまとめました。
キャプチャはどんどん進化しており、従来のテキスト入力型キャプチャ以外にも、異なる入力方法のキャプチャがあることがわかりますね。

また、キャプチャの代替となるスパム対策方法は、キャプチャに比べてユーザーの入力を妨げることがありません。
これらは単一では突破されてしまうかもしれませんが、いくつかを組み合わせることより効果を発揮するでしょう。

しかし、スパム側の技術も日々発達しており、完全にフォームからキャプチャがなくなることは難しいのかもしれません。
そんななかでも、ユーザーにとって使いやすいことをまず第一に考えながら、スパム対策方法を検討するようにしたいですね。

参考記事:
http://www.smashingmagazine.com/2011/03/04/in-search-of-the-perfect-captcha/
http://www.bronco.co.uk/our-ideas/how-to-deal-with-spam/
http://uxmovement.com/forms/captchas-vs-spambots-why-the-slider-captcha-wins/

この記事が気に入ったら
いいね!しよう

UI改善ブログの最新情報をお届けします

エフトラEFO機能アイコン

UI改善ブログを運営する株式会社エフ・コードでは
UI改善の基本施策を簡単に実施できる「エフトラEFO」「エフトラCTA」を開発しています。

エフトラEFOサイトへ エフトラCTAサイトへ

メールマガジンを購読する

ブログの更新情報やセミナーのお知らせなど、
UI改善に関する情報を1~2週間に1回お届けします。

メールアドレスを入力

 購読解除はいつでも可能です