回答を受け入れましたが、残念ながら、元の最悪のシナリオにとどまっていると思います。簡単な説明: キャッシング/Web ファームはヒットを追跡することを不可能にし、任意の回避策 (キャッシュされていない Web ビーコンの送信、統合テーブルへの書き込みなど) は、ボットよりもサイトの速度を低下させます。高レベルで役立つ Cisco などの高価なハードウェアがいくつかある可能性がありますが、代替手段として全員に CAPTCHA を適用する場合、コストを正当化するのは困難です。後でより完全な説明を試み、将来の検索者のためにこれを整理します (ただし、コミュニティ wiki であるため、他の人も試してみてください)。
状況
これは woot.com でのバケツ販売についてです。私は Woot の子会社である Woot Workshop の社長であり、デザイン、製品説明の執筆、ポッドキャスト、ブログ投稿、フォーラムのモデレートを行っています。私は CSS/HTML を扱っていますが、他の技術についてはほとんど知りません。私は開発者と緊密に協力し、ここにあるすべての回答 (および私たちが持っていた他の多くのアイデア) について話し合いました。
ユーザビリティは私の仕事の大きな部分を占めており、サイトをエキサイティングで楽しいものにすることが残りのほとんどです。そこから、以下の 3 つの目標が導き出されます。CAPTCHA はユーザビリティを損ない、ボットはくだらないセールから楽しさと興奮を盗みます。
ボットはランダム クラップ セールのために、1 秒間に何十回も画面をスクレイピング (および/または RSS をスキャン) してフロント ページをバタンと叩いています。彼らがそれを見た瞬間、プログラムの第 2 段階がトリガーされ、ログインして [I want One] をクリックし、フォームに入力して、がらくたを購入します。
評価
lc : このメソッドを使用する stackoverflow やその他のサイトでは、ほとんどの場合、認証された (ログインしている) ユーザーを扱っています。
Woot では、匿名 (ログに記録されていない) ユーザーが私たちのホームページを閲覧できます。言い換えれば、スラミングボットは認証されていない可能性があります (そして、IP アドレス以外では基本的に追跡不可能です)。
そのため、IP のスキャンに戻ります。これは、a) クラウド ネットワーキングとスパムボット ゾンビのこの時代ではまったく役に立たず、b) 1 つの IP アドレスから来るビジネスの数を考えると、あまりにも多くの罪のない人を捕まえます (言うまでもなく、非静的 IP ISP と、これを追跡しようとするとパフォーマンスが低下する可能性があります)。
ああ、そして、人々が私たちに電話をかけることは、考えられる最悪のシナリオになるでしょう. 彼らにあなたに電話してもらえますか?
BradC : Ned Batchelder の方法はかなりクールに見えますが、サイトのネットワーク用に構築されたボットを打ち負かすようにかなりしっかりと設計されています。私たちの問題は、ボットが私たちのサイトを打ち負かすために特別に構築されていることです. これらの方法のいくつかは、スクリプターがボットを進化させてハニーポットを無視し、フォーム ID の代わりに近くのラベル名をスクリーン スクレイプし、JavaScript 対応のブラウザー コントロールを使用するまで、短期間は機能する可能性があります。
lc 再び: 「もちろん、誇大宣伝があなたのマーケティング計画の一部である場合を除きます.」はい、間違いなくそうです。アイテムが現れたときの驚きと、それを手に入れることができたときの興奮は、おそらく実際に得られるがらくたと同じかそれ以上に重要です. 先着順を排除するものはすべて、がらくたを「勝つ」というスリルを損ないます。
novatrust : そして、私は、新しいボット オーバーロードを歓迎します。実際には、サード パーティのアプリがサイトをスキャンして製品情報を取得できるようにするために、RSS フィードを提供していますが、メイン サイトの HTML よりも先にスキャンすることはできません。私の解釈が正しければ、あなたの解決策は、目標 1 を完全に犠牲にして、ボットが大部分を買うという事実を放棄することによって、目標 2 (パフォーマンスの問題) を助けます。あなたの最後の段落の悲観論は私には正確だと感じたので、私はあなたの回答に賛成票を投じました. ここには特効薬はないようです。
残りの応答は一般的に IP 追跡に依存していますが、これも役に立たず (ボットネット/ゾンビ/クラウド ネットワーキングで)、有害です (同じ IP の宛先から来る多くの罪のない人を捕まえます)。
他のアプローチ/アイデアはありますか? 私の開発者は「CAPTCHA をやりましょう」と言い続けていますが、私たちのがらくたを欲しがっているすべての実際の人間に邪魔にならない方法があることを願っています.
元の質問
非常に高い認識価値を持つものを安く販売していて、数量が非常に限られているとします。このアイテムをいつ販売するかは誰にもわかりません。そして、100 万人以上の人々が定期的にあなたの商品を見に来ます。
スクリプターやボットは、[a] あなたがそのアイテムをいつ販売しているかをプログラムで把握し、[b] 彼らが最初にそれを購入したことを確認しようとします。これには 2 つの理由があります。
- あなたのサイトは人間以外によって非難され、すべての人にとってすべてが遅くなります.
- スクリプターは製品を「獲得」することになり、常連はだまされたと感じます。
一見明白な解決策は、ユーザーが注文する前にジャンプするためのフープを作成することですが、これには少なくとも 3 つの問題があります。
- CAPTCHA を解読したり、猫を見つけたり、数学の問題を解いたりする必要があるため、ユーザー エクスペリエンスは人間にとって最悪です。
- 認識された利益が十分に高く、群衆が十分に大きい場合、一部のグループは微調整を回避して軍拡競争につながる. (これは、微調整が単純であるほど特に当てはまります。非表示の「コメント」フォーム、フォーム要素の再配置、それらの誤ったラベル付け、非表示の「落とし穴」テキストはすべて一度に機能し、その後、この特定のフォームをターゲットにして戦うために変更する必要があります。 .)
- スクリプターがあなたの微調整を「解決」できなくても、彼らがあなたのフロントページをバタンと閉め、スクリプターが注文を手動で記入するように警報を鳴らすのを防ぐことはできません. [a] を解決することでアドバンテージを得たとしても、注文ページに到達する最初の人間になるため、[b] を勝ち取る可能性は高くなります。さらに、1. は引き続き発生し、サーバー エラーが発生し、すべてのユーザーのパフォーマンスが低下します。
もう 1 つの解決策は、頻繁にアクセスする IP を監視するか、それらをファイアウォールからブロックするか、または別の方法で IP が注文されないようにすることです。これにより 2. が解決され、[b] が防止される可能性がありますが、IP のスキャンによるパフォーマンスへの影響は大きく、スクリプト作成者が独自に引き起こした問題よりも 1. のような問題を引き起こす可能性があります。さらに、クラウド ネットワーキングとスパムボット ゾンビの可能性があるため、IP チェックはほとんど役に立ちません。
3 番目のアイデアは、注文フォームをしばらくの間 (たとえば 0.5 秒) 強制的に読み込ませることで、迅速な注文の進行が遅くなる可能性があります。実際のユーザー。
目標
- スクリプトを使用しない人間にアイテムを販売します。
- ボットによって速度が低下しない速度でサイトを実行し続けます。
- 「通常の」ユーザーが人間であることを証明するために完了するタスクを実行するのに煩わされないでください。