これは多くの人が遭遇した問題の1つです。user166390がコメントで指摘しているように、ボットはjavascriptをバイパスして、サーバーに直接情報を送信できます(cURLやPostmanなどの単純なユーティリティを参照)。多くのボットは現在、JavaScriptを消費して操作することができます。Hari krishnanは、キャプチャの使用を指摘しています。キャプチャの中で最も普及していて成功しているのは(私の知る限り)reCaptchaです。しかし、キャプチャには問題があり、主に非効率でアクセスできないという理由で、ワールドワイドウェブの大要によって推奨されていません。
そして忘れないように、攻撃者はいつでも人間の知性を展開してキャプチャを打ち負かすことができます。攻撃者がスパム目的でキャプチャをクラックするためにお金を払って、労働者が違法な活動に参加していることに気付かないという話があります。Amazonは、このようなことに取り組むMechanicalTurkと呼ばれるサービスを提供しています。アマゾンは、もしあなたが彼らのサービスを悪意のある目的で使うとしたら、激しく反対するでしょう、そしてそれはお金がかかり、紙の証跡を作るという欠点があります。しかし、そのような異議を唱えないであろうより多くのerhmプロバイダーがそこにあります。
それで、あなたは何ができますか?
私のお気に入りのメカニズムは非表示のチェックボックスです。「当社のサービスの利用規約に同意しますか?」のようなラベルを付けてください。おそらく、いくつかの深刻な用語へのリンクがあっても。ただし、デフォルトではチェックを外し、cssで非表示にします。ページ外に配置し、高さまたは幅がゼロのコンテナーに配置し、その上にdivを配置してz-indexを高くします。ここで独自のメカニズムを実行し、創造性を発揮してください。
秘密は、チェックボックスが人間に表示されないことですが、ほとんどのボットは、実際の視覚ではなく、ページを調べて直接操作することでフォームに入力します。したがって、そのチェックボックス値セットに付属するフォームを使用すると、人間が入力したものではないことがわかります。この手法はボットトラップと呼ばれます。自動フォーム入力ボットのタイプの経験則は、人間が個々のサイトを克服するために介入しなければならない場合、彼らは彼らの時間を広めることによって稼いだであろうすべてのお金を(彼らの時間の形で)失ったということですスパム広告。
(以前の経験則では、フォーラムまたはコメントフォームを保護していることを前提としています。実際のお金や個人情報がライン上にある場合は、1つのヒューリスティックよりも多くのセキュリティが必要です。これはあいまいさによるセキュリティです。あいまいさは、カジュアルなスクリプトによる攻撃からユーザーを保護するのに十分です。これにより、すべての攻撃からWebサイトが保護されると思い込まないでください。)
秘密の残りの半分はそれを維持することです。チェックボックスがオンになっている場合は、応答を変更しないでください。同じ確認、ありがとう、またはその後のメッセージやページを表示します。これにより、ボットは拒否されたことを知ることができなくなります。
私はタイミング法のファンでもあります。サーバー側で完全に実装する必要があります。ページが永続的に提供された時間(基本的にはセッション)を追跡し、フォームの送信が行われた時間と比較します。これにより、偽造が防止され、時間指定されていることをボットに通知することもできます。フォームまたはJavaScriptを使用して、より洗練されたアプローチを採用していることを通知します。
繰り返しになりますが、同じサンキューページを提供している間は、リクエストを黙って破棄します(または、スパムフォームへの応答に遅延を導入します。これにより、サーバーを圧倒するのを防ぐことはできず、圧倒することもあります。より多くの接続をより長く開いたままにすることで、より高速になります。その時点で、ハードウェアソリューション、ロードバランサーセットアップのファイアウォールが必要です。
攻撃者の速度を落とすためにサーバーの応答を遅らせることについては、多くの場合、ブルートフォースパスワードの試行という形で多くのリソースがあります。このITセキュリティの質問は良い出発点のように見えます。
キャプチャに関する最新情報
私はしばらくの間、コンピュータビジョンとフォーム送信のトピックに関してこの質問を更新することを考えていました。最近、コンピュータビジョンの愛好家であるSteveHicksonによるこのブログ投稿を指摘する記事が浮上しました。Snapchat(どうやらいくつかのソーシャルメディアプラットフォーム?私はそれを使ったことがなく、毎日年をとっています...)は、幽霊を含む写真(実際には漫画)を識別しなければならない新しいキャプチャのようなシステムを立ち上げました。スティーブは、これが提出者についてのスクワットを検証しないことを証明しました。なぜなら、典型的な方法では、コンピューターはこの単純なタイプの画像をより良くそしてより速く識別するからです。
同様のアプローチを他のキャプチャタイプに拡張することを想像するのは難しいことではありません。検索したところ、これらのリンクも興味深いことがわかりました。
reCaptchaは壊れていますか?
実用的な非画像ベースのキャプチャ
CAPTCHAを打ち負かすことができるとわかっている場合、なぜまだそれらを使用しているのでしょうか。
CAPTCHA画像を使用する真の代替手段はありますか?
3人のハッカーがGoogleのreCaptchaをどのようにひざまずかせたか-オーディオCaptchaに関するものであるため、非常に興味深いものです。
ああ、そして私たちは義務的なXKCDコミックなしではほとんど完成しませんでした。