私の考えは、主な焦点として難しさがある一種の階層化されたCAPTCHAモデル(4層-そこからレイヤー0はキャプチャではない)を使用することです。
ボットを停止すること以外の私の最初の焦点は訪問者に彼がしていることをますます認識させるためです。
それは訪問者に「タイプイン」や「ウォッチアンドタイプイン」の仕事よりも思考の仕事を与え、これは訪問者が彼がしていることを知っていることを確認します(例えば、不必要なリクエストを制限する)。
情報セキュリティ業界で長年働いた後、私はまだそのような実装に遭遇していません。これは、特定のユースケースに適さないという意味ではありませんが、確立された設計パターンではありません。
UXの専門家がCAPTCHAを嫌っているので、ここ数年でCAPTCHAの使用が減少しました。 CAPTCHAは、ほとんどの場合、最後の手段として(たとえば、ログイン試行が10回失敗した後)、またはUXへの影響を少なくすることを目的とした実装(たとえば reCAPTCHA V2 )が使用されます。
しかし、セキュリティの世界で知られている別のメカニズムがあり、それはあなたのニーズに合うかもしれません。これはstep-up authenticationと呼ばれます。このパターンは基本的に、ユーザーがリスクの高いタスクを実行する前に、同じまたはより強力な形式の認証で再認証を強制します。これはあなたが探しているものを実現します:It verifies that the visitor knows what he's doing.
このアプローチの良い例は、GitHubでリポジトリを削除することです。これを行う前に、パスワードを再入力し、削除するために選択したリポジトリの名前を入力する必要があります。そうすれば、ユーザーは、間違ったリポジトリを削除して重大な間違いをする前に、立ち止まって考え直す必要があります。
別の例は、実行を許可する前にMFAを必要とする重要な操作です。ユーザー名とパスワードを使用してオンラインバンキングアカウントにログインして残高を確認できる場合がありますが、トランザクションを実行する場合は、2番目の要素としてPIN経由で送信された追加のSMSを入力する必要があります。
ランプアップ認証が問題をよりエレガントな方法で解決するかどうかを評価する必要があります。本当にCAPTCHAが必要ですか。 CAPTCHAは通常ユーザーフレンドリーとは見なされず、顧客満足度に影響を与える可能性があることを考慮に入れてください。
これは ユーザーエクスペリエンス の質問です。ただし、破壊的な操作を実行する前にユーザーが何をしているかを確実に認識し、その操作を意図的に実行することを困難にすることによってそれを行うことを決定したい場合は、それらのハードルをより認識しやすい方法で設計する必要があります彼らがやろうとしていること。通常のキャプチャは、通常、ユーザーが何をしようとしているのかとは関係がないため、注意散漫になります。
例:当社には、リモートソフトウェア構成の変更をロールアウトするための社内ソリューションがあります。 1人の管理者が1台のPCでアプリケーションをアンインストールするつもりでしたが、数千のPCで誤ってクリックして誤ってアンインストールしました。これは非常に重要なアプリケーションだったので、多くの混乱を引き起こしました。これが将来発生しないようにするための計画には、リモート構成プログラムが変更の影響を受けるPCの数をユーザーに通知することが含まれており、100を超える場合は、その前に入力フィールドに正確な数を入力するように求められますコマンドが実行されます。