プロジェクトでキャプチャを設定する作業をしていて、そのユーザーエクスペリエンスについて考えました。個人的には、特に難しい場合は、退屈だと思います。
これらさえ、あなたが今日目にするほとんどの人に比べてかなり簡単ですが、混乱を見てください!
2010年の質問に偶然出会いましたが、人間による検証方法に関して興味深い回答がありました。
ロボットと人を区別するために私が今まで遭遇した最も効果的な解決策は、彼らがインターネットにお金を費やしているかどうかを知ることです。
この例の一般的なアカウント識別子としてメールを使用するには。あなた、競合他社、Amazon、デジタルマーケットプレイスなど、オンラインでメールを購入したことがある場合は、スパムボットではなく、人間であると100%確信できます。
これは今日機能し、アイテムの購入コストは後で投稿できるスパムの価値を常に上回り、スパムを経済的に実現できなくなるため、機能が停止することはありません。
これは、eコマースまたは関連業界で事業を行っていない多くの人にとってはあまり実行できませんが、そのデータがある場合、人が人間であるかどうかを特定する完璧な方法があります。トリッキーな質問をする必要はもうありません。
さて、他のサイトが電子メールをクロスチェックして何かを購入したことがあるかどうかを確認する方法のリストがないと、明らかにこれは難しいでしょう。次に、彼らが何も購入しなかったが実際には人間である場合に何が起こるかというジレンマもあります。
スパムボットをリストしているサイトに対して電子メールをクロスチェックすることは効果的ですか?あなたがそこにいない場合、CAPTCHAはありません、そしてあなたがいる場合は、渡す必要がある非常に難しいCAPTCHAを取得します。ただし、これは、新しいスパムボットがまだブラックリストに登録されていないため、新しいボットがサイトに侵入して問題を引き起こす可能性があるという問題を引き起こします。
私の質問の短い(tl; dr)バージョン:ユーザーが人間であるかどうかを確認する、よりユーザーフレンドリーな方法はありますか?
CAPTCHAは、顧客にビジネス/技術的な問題への対処を強いる例です-顧客に代わってほとんど利益をもたらさないように多大な努力を交換します。 "あなたは人間ですか?"多くの場合、これらの非常に一般的なパターンを伴います。
CAPTCHAよりも、顧客の人間性を問うことなく、ボットを捕まえるハニーポットを構築できます。ハニーポットは、ボットが「読み取る」フォームに埋め込まれた隠しフィールドです。たとえば、非表示のチェックボックスまたは入力を選択または入力すると、フォームの送信が拒否されます。
考慮すべき他の技術がいくつかあります。たとえば、フィールドを非表示にする方法、フィールド名をランダム化する方法、キャプティブボットを処理する方法などですが、ハニーポットのデザインに関するいくつかの優れた記事を読むと役立つでしょう https://www.smartfile.com/blog/captchas-dont-work-how-to-trick-spam-bots-with-a-smarter-honey-pot/
非表示のフィールドを追加できます。これは、UIでは非表示ですが、コードでは非表示です。スパムボットはそのフィールドに記入しますが、実際の人は記入しません。
それは本当の人々を煩わすことなくスパム問題を解決します。
たとえば、Spamicideを参照してください https://drupal.org/project/spamicide
私は絶対に「テキスト」指向/ベースのキャプチャが嫌いです。それらは不便で、しばしば難しすぎ、煩わしく、時間がかかるなどです。
何百もの選択肢がありますが、ユーザーが2秒のタスクを完了する前に、途方もなく困難なキャプチャのすべての文字を正しく取得しなければならないわけではありません。
犬の写真4枚と猫の写真1枚を表示し、下の「猫をクリックしてください」という質問を使用しても、.
ここに captchaのいくつかの代替 とこのメソッド 画面のイベントでの人間の活動を認識するためにJavaScriptを使用 があります。
ある種の 作業証明の概念 を使用するのはどうですか?
ウェブサイトの場合、JavaScriptで作業証明ジェネレーターを実装し、たとえば、平均的なワークステーションで100ミリ秒の作業時間。それをWebサーバーに送信します。フォームの送信を待つのに長すぎず、キャプチャを入力するよりもはるかに少ない作業です。
私の知る限り、キャプチャを置き換える「理想的な」ソリューションはありません。数学の質問であれ、ドラッグアンドドロップやカーソルのスライドなどの単純なタスクであれ、ハッカーにはあまり目立ちません。
もちろん、他にも次のような選択肢があります。
質問簡単な質問ですが、これらの質問を読んで理解するのに必要な時間は、ユーザーにとっては珍しく不明であるため、変化する可能性があります。ユーザーの言語でのすべての質問
サードパーティ認証の使用(ソーシャルログイン(Facebookなど)など)。ただし、すべての人がソーシャルネットワークを使用するわけではありません。
ソルブメディア:広告ハイブリッドキャプチャを使用している会社で、ユーザーに会社の広告に関する簡単な質問への回答を要求する(例:「会社のロゴの下に書かれているテキストを書き留めてください」)
ユーザーの時間支出(タイムスタンプ分析):フォームの送信にかかった時間を測定することにより、ユーザーまたはボットを識別します。 (例:5秒未満の場合=ボットなど)
結論として、これまで私が認識している最良の代替案は次のとおりです。
ハニーポットおよびユーザーの時間支出としてのいくつかの方法の混合(まだ完全ではありません)
または再キャプチャ(Googleの再キャプチャ):これは、これまでのすべてのキャプチャの中で最も簡単/最も安全であるため(たとえば、視覚障害者などの障害者にとっては、オーディオの選択肢がまったくユーザーフレンドリーではないため、まだ問題があります)
再キャプチャを使用することをお勧めします。
私が今まで見たCaptchaに代わる最良の方法は、カスタムインタラクティブコントロールです。
次のようなものを伝えるコントロール:
Please drag the the ball to the end of the line
--0-------------------------------
そして、あなたは小さなボールを取り、ラインの終わりまでそれをドラッグする必要があります。それは楽しく、ユーザーにとって驚くべきことであり、非常に迅速で、ボットの証明にもなります。
http://areyouahuman.com/ サービスを使用できます。
それは、ネットのようないくつかの本当に基本的なゲームのリストからゲームをランダムに選択し、蝶を捕まえます。
アイテムを互いに偽装するには人間の思考が必要であり、ゲームがときどきバグアウトする可能性があるため、成功率は中程度ですが、それ以外は優れたキャプチャのようなサービスです。
シンボル認識以外の基本的なインテリジェンスが必要です。
おそらく文字と数字の組み合わせから、2つの1桁の数字を追加するようにユーザーに依頼します。
例:「hp5mcer6pnt」
回答:「11」
文字を無視して数字を入力するようにユーザーに依頼します。
例:「hp5mcer6pnt」
回答:「56」
3番目と5番目の文字を入力するようにユーザーに依頼します。毎回異なるランダムな位置。
例:「MEOGSYFPNE」
回答:「OS」
これは私が今日遭遇した例で、本当に使いやすいです:
ユーザーがフォームに入力すると、ユーザーが行ったすべてのキーストロークをキャプチャし、マウスの動きもキャプチャできます。通常のユーザーがフォームに自動的に入力するソフトウェアを使用することを禁止する必要がありますが、それはあなたが支払う意思のある価格である可能性があります。
そのデータをパターン認識アルゴリズムで実行し、スパマーのかなりの部分を捕まえることができます。
問題の一部に対するWebサーバーソリューションがあります。たとえば、IISなどのDOS攻撃を防止しようとしている場合、「ダイナミックIP制限」と呼ばれるプラグインがあります。このプラグインを使用すると、IISに、構成可能な同時要求の数および/または指定した期間の構成可能な要求の数に基づいてIPアドレスを拒否するように指示できます。他のWebサーバーに間違いありません。同様のメカニズムがあります。
これは1回限りのスパムリクエストを停止することはありませんが、ハニーポットと組み合わせることで、CAPTCHAを完全に不要にすることができます。