web-dev-qa-db-ja.com

CAPTCHAよりも上手くできますか?

スパムを防ぐために、CAPTCHAやその他の戦略にはさまざまな形式があります。いくつかを簡単に挙げると:

  • 簡単な数学や単語の質問。
  • 難読化されたテキスト。
  • JavaScriptベースのCAPTCHA。
  • 画像のキャプチャ。
  • ハニーポット。
  • オーディオCAPTCHA。
  • Akismetのようなルールベースのフィルタリング。
  • 信頼に基づいて特権が徐々に増加します。
  • StackExchangeのようなコミュニティの管理。
  • リンクのnofollow属性のようなスパム阻害要因。
  • 良いコンテンツを投稿するためのインセンティブ。
  • 管理のモデレーション。
  • IPホワイトリストとブラックリスト。
  • 公の恥と恥辱。

これらのアプローチはそれぞれ、アクセシビリティの問題、技術的な制限、時間制限、変換の問題、またはコミュニティの規模により、克服すべき障害があります。私が最もよく機能しているのは、上記の手法のいくつかを組み合わせたシステムです。しかし、スパムとの闘いに関して重要な何かを見逃しているように感じずにはいられません。

万能型の単一のソリューションを希望するのは多すぎるかもしれませんが、スパム防止は別の角度からアプローチできるかもしれません。ユーザーインターフェースが人間の行動にどのように影響するかという点で、さらに検討すべきことがあるのではないかと思います。

制約があると創造性が誘発されることが多いので、次の制約があれば、ユーザーインターフェイスの観点からスパムに対する武器を追加するための新しいツールを考え出せますか?

  1. アクセス可能でなければなりません。
  2. これは、無停止でエンドユーザーに対して透過的である必要があります。
  3. ページの主な目的を損なうことはできません。
  4. 自動化するか、大規模なモデレーションをほとんど必要としません。
  5. サードパーティのサービスにすることはできません。
46
Virtuosi Media

ブラウザとスパムボットを使用している実際の人々の間で異なる物理的特性のいくつかを利用できるかどうか疑問に思っています。

私に思い浮かぶ2つのプロパティは、sequencepaceです。

シーケンス:実在の人物がコメントを送信する前にページをダウンロードします。一部のスパムボットは、フォーム送信を直接送信します。

以前にそのユーザーにフォームを提供したことがあるかどうかを検出し、フォームをダウンロードしていない送信を拒否できますか?

Pace:実在の人物は、通常、送信する前にコメントを入力するのに数秒から数分かかります。スパムボットがページをダウンロードし、すぐにスパムコメントを送信する可能性があります。

提出が速すぎる(たとえば、2秒未満)か、遅すぎる(たとえば、24時間を超える)提出を拒否することは理にかなっていますか?

22
Bevan

これは簡単な答えのように見えますが、XKCDは実際にはこの問題の概念的な解決策を備えていました。 http://xkcd.com/810/ 簡単に言うと、代わりの方法は、無関係なユーザーコメントを読んでから、コメントが建設的かそうでないかを示すことです。これには、「これは嫌だ」などのコメントを投稿できないようにするボーナス機能があります。意図した使用事例に基づいてそれが望ましい場合と望ましくない場合がありますが、それらの数を減らしたいと思います。

このソリューションには、テストセットとして使用できる建設的/建設的でないコメントのベースラインセットをどのように作成するかなど、いくつかの問題があります。誰かが最初にこれらのコメントを手動で確認する必要があり、4番目の要件を満たせないか、「保留中」のコメントを確認済みユーザーに(たとえば50回程度)表示して「正しい」という合意を得るための何らかのシステムを作成する必要があります。回答。明らかに、CAPTCHAの代替手段を使用して保護しようとしているのはコメントシステムであり、実際のベースラインを確保するのに十分なユーザーがコメント(または関連のないコメントセットへのアクセス)を生成していることを前提としています。

編集:私の脳は魅力的でした(私はまだお茶を飲んでいません)、コメントの長さに応じて、建設的であるかどうかを示すために複数のコメントを表示できます。これにより、「保留中」をシームレスに提示できます。 "ユーザーにコメントして、余分な作業をしなくて済むように感じることなく、そのコメントについて合意に達することができます。

6
Josef Schelch

数日前にその問題について非常に興味深い記事を読んだだけです。それは創造的な選択肢があります、あなたはそれをチェックする必要があります

http://webdesignledger.com/tips/why-you-should-stop-using-captchas

6
Pam Rdz

moneyが人間であること

私がロボットと人を区別するためにこれまで遭遇した最も効果的な解決策は、彼らがインターネットにお金を費やしているかどうかを知ることです。

この例の一般的なアカウント識別子としてメールを使用するには。あなた、競合他社、Amazon、デジタルマーケットプレイスなど、オンラインでメールを購入したことがある場合は、スパムボットではなく、人間であると100%確信できます。

これは今日機能し、アイテムの購入コストは後で投稿できるスパムの価値を常に上回り、スパムを経済的に実現できなくなるため、機能が停止することはありません。

これは、eコマースまたは関連業界で事業を行っていない多くの人にとってはあまり実行できませんが、そのデータがある場合、人が人間であるかどうかを特定する完璧な方法があります。トリッキーな質問をする必要はもうありません。

4
anthonyryan1

私はこのスレッドの調査/再検討に興味があり、これが機能するかどうか、現在のテクノロジーが与えられていないかどうかを知りたいです。

  1. ユーザーには世界地図の画像が表示されます。画像は毎回画面上で水平方向にランダムにシフトできるため、地理上の位置を画像上の座標位置として覚えておくことができます。

  2. 確認できる地理的位置に関連する質問(たとえば、現在の世界のどこにいるかなど)がユーザーに尋ねられます(IPアドレスやマシンアドレスなどを介して)。

  3. ユーザー入力は画像と照合され、回答が一致する場合、キャプチャは完了です。

私はそれが高速だと思います、おそらくアクセス可能にすることができますが、おそらくまだJavaScript処理が必要です。しかし、それはユーザーからの処理と、ボットによって確実にシミュレートできない非常に迅速で単純な応答にのみ依存しています(またはそれは可能ですか?)。また、ジェスチャーベースのキャプチャを使用していくつかのアイデアを調査していますが、これにも特定の問題があるかどうかはわかりません。

2
Michael Lai

社会活動の分析が役立つ場合があります。

たとえば、Facebookコネクトを使用してサイトにログインしたユーザーが3年間登録していて、ギャラリーに50人の友達と猫の写真がある場合、そのユーザーにCAPTCHAをリクエストするのはたまにしかありません。

逆に、ユーザーが昨日Facebookに登録され、正確に256人の友達がいる場合(冗談です)、最初の10日間はCAPTCHAを入力するように依頼することができます。

もちろん、このアプローチはFacebook/Googleなどの機能に依存しています。ハイジャックされたアカウントをかなり迅速に削除する。

0

小さなゲームがテストとして使用された場合はどうなりますか?ユーザーを楽しませ続けるので、スパム防止のためだと気づかれないようにする単純なパズル... Crayon Physics の簡易バージョンのように。

0
user2588