9

ここでインスピレーションを探しています。私は自分のウェブサイトに何らかの人間による検証を採用する必要がありますが、最近の最も一般的な方法 (画像に表示されている文字と数字をテキスト入力ボックスに入力するようにユーザーに求める) は少しばかげているように思えます -時々難しいと思います文字と数字が何であるかを理解する。

もっと良い方法があるはずです!

いくつかのアイデアがありましたが、ユーザーに一連の画像 (4 ~ 6) を表示し、画像の内容に基づいて次のような質問に答えるように求めるのが最善の方法のようです。

(いくつかの幾何学的形状を見せてください) 「3 つの側面がある画像はどれ?」

また

(動物の写真を見せる) 「空を飛べる動物は?」

これには、プログラムが簡単で、できれば簡単に渡すことができるという利点があります。

この問題に対する他のアプローチを考えられる人はいますか? または、上記のシステムの欠陥を発見する可能性はありますか? このようなシステムを、人間が通過しやすく、ボットが通過しにくくすることは可能ですか?

4

4 に答える 4

3

少し古いですが、KittenAuthは面白い (そしておそらく非常に効果的な) キャプチャ アプローチであることがわかりました。ただし、連絡先ページにはデモが1つしかないようです。

(テキスト画像ではなく) 純粋な画像ベースのアプローチの問題点は、基本的に目の不自由なユーザーがサイトを使用するのを妨げていることです。KittenAuth の作成者は、彼のサイトのコメントの 1 つでこれを認めました。

KittenAuth の面白い小さなライダーとして、このページには「史上最悪の 10 のキャプチャ」があり、その中には私のお気に入りの 1 つも含まれています。

微積分キャプチャ

于 2009-09-19T14:45:18.480 に答える
1

(送信ボタンではなく)通常のボタンをクリックすることでトリガーされるajaxベースの送信プロセスを使用してみてください。jQueryを使用すると非常に簡単です。

私の知る限り、スパムボットにはjavascriptがありません。

JavaScriptが有効になっていないユーザーが心配な場合は、フォームを送信できなくてもまったく問題ないと思います。彼らがあなたのサイトでjavascriptを有効にすることを信頼できない場合、彼らがWebサイトを最大限に使用できないのはあなたのせいではありません。

編集:

参照:実用的な非画像ベースのCAPTCHAアプローチ?

ただし、問題は、誰かが意図的にサイトをターゲットにしている場合、この種の手法は機能しません。

EDIT2:

実際の例へのリンクを提供することはできませんが、もう少し詳細をブログに書いたので、ここにいくつかのサンプルコードを示します。

function submit_form()
{
    jQuery.ajax({
      "type": "POST", // or GET
      "url": 'action_url', // The url you wish to send the data to, the url you'd put in the "action" attribute on the form tag
      "data": jQuery("form#the-form").serialize(), // The data you'll send. You need to get the form somehow. Easiest way is to give it an id.
      "dataType": "json", // Only put this if the server sends the response in json format
      "success": function(data, textStatus) // server responded with http status 200
        {
            // This is the happy case: server response has arrived
        },
      "error": function(req, textStatus, errorThrown) // maybe HTTP 404 or HTTP 500
        {
            // something went wrong, the response didn't go through or the response didn't come. Handle the situation: let the user know, or something.
        },
      "complete": function(req, textStatus) // This one always gets called anyway
        {
            // cleanup after yourself
        }   // XXX careful: if you put a comma here, IE6 will fail
      });
}
于 2009-09-19T14:52:30.410 に答える
1

単純な質問に対して単純な認知的反応が要求される質問チャレンジ システムを使用してみてください。たとえば、ユーザーに次の質問例に回答してもらいます。

路上の3台の車は、さらに3台の車を見ることができます。車は全部で何台ありますか?

テクノロジーは、帯域幅に敏感なボットがそのような質問に答えることができるほど進歩していませんが、質問には簡単に答えることができます. ユーザーは、マシンではなく人間であることを確認するために、3 または 3 を入力する必要があります。ボットが単純にサイトに ping を送信して記録する質問を見て、回答を返すことがないように、十分な量の質問のバンクを用意する必要があります。

于 2009-09-19T14:46:12.620 に答える
1

私は特に「空を飛べる動物」の例が好きです。シンプルで効果的。

しかし、この種のことは悪用される可能性があります。文化的な偏見、または認識された偏りを与えることは難しくありません。

そして、オースティン・チェイニーが示したように、それは簡単に一種の知性テストになり、アクセシビリティの問題が発生する可能性があります.

于 2009-09-19T14:50:19.190 に答える