Facebook や Twitter などの Web サイトは、登録時にボットからどのように保護されますか? つまり、サインアップフォームにキャプチャがまったくないということですか?
プロジェクトのサインアップ フォームを作成したいのですが、登録時にボットを使用したくありません。Captcha はしばしば見苦しくなります。
編集: 私の質問は、Facebookが最初に登録されたときにCaptchaを使用していることを知っているため、実際には登録中です.
Facebook はある種の隠されたスパム保護を使用しています。サインアップ フォームのソースを表示すると、次のような内容が表示されます。
class="hidden_elem"><div class="fsl fwb">Security Check</div>This is a standard security test that we use to prevent spammers from creating fake accounts and spamming users.
そのため、JavaScript があなたがボットであると判断すると、キャプチャが表示されます。
ボットがキャプチャなしで登録を完了するのを難しくする方法はほとんどありません。フォームに記入するタイミング、マウス クリック イベントの発信者などです。また、フォーム内のランダムなセッションベースの値 (最初にフォームをダウンロードせずに直接送信するのを防ぐため)
また、css で非表示にスタイル設定された「email」などの一般的な名前の非表示のフォーム要素を使用する人もいますが、一般的な単純なボットはすべてのフォーム フィールドに入力しようとするため、この非表示の要素に値がある場合はそれらをブロックできます。
Twitter と FB はスパマーをブロックする技術の開発に多くの時間を費やしていますが、スパマーと戦うのは非生産的であるため、公開することはないと思います。
ただし、ほとんどの保護はサーバー上ではなくクライアント内で行われるため、必要に応じて fb または twitter からダウンロードして調査できるすべてのクライアント側 JavaScript を使用できます。
サーバーは、ランダムなセッション変数を発行したり、リクエスト内の有効なヘッダーをチェックしたり、全体の時間などを確認したりすることしかできませんでした。実際には制限されていました。
一部のサイトでは、ユーザーがフォームに入力しているときにサーバーとクライアントの間で ajax 交換を使用しています。これは主に、ボット開発者が偽のデータ交換を行うのを困難にするためです。
とにかく、残念なことに、特にキャプチャや何らかの質問なしで、適切な保護を行うための簡単な解決策はありません
また、送信ボタンには、ボタンの代わりにイメージ マップを使用できます。PHP の GDI などを使用し、css を使用してその画像の一部のみを実際のボタンをクリックし、サーバー側でマウスがクリックされた場所の X と Y の位置を確認します。これは、ボットが壊れにくくなります。彼らが実際のブラウザを使用して、キーボードとマウスをエミュレートするだけでない限り。とにかく、私が言ったように、残念ながら簡単な解決策はありません。
1 つの方法は、ユーザーの電子メール アドレスまたは携帯電話に確認を送信し、確認を取得することです (その場合、アカウントごとに 1 つの電子メール アドレスまたは携帯電話のみを許可する必要があります)。
もう 1 つのオプションは、「ネガティブ CAPTCHA」または「ハニーポットCAPTCHA 」を使用することです。
Facebook や Twitter がどのようにそれを行っているかはわかりませんが、サイトの美学を妨げないシンプルなものを作成したい場合、次のような単純な数学の問題への回答をユーザーに入力するように求める Web サイトがあることは知っています。 「2 + 3 とは?」これは最も安全な方法ではありませんが、単なる考えです。
レイヤ 4 ~ 7 のファイアウォール ルールを作成するために、いつでもハードウェア ソリューションを展開することもできます。特定のルールを作成して、Web をクロールするボットの既知のエージェントを探すことができます。ただし、新しく作成されたボットを停止するには、ボットがボットに使用しているエージェントを知る必要があります。
CAPTCHA は不要なので、Keypic ( keypic.com ) を使用できます。これは目に見えない保護であり、CAPTCHA は必要ありません。これは、あらゆる Web フォームに対する効率的なスパム対策方法です。サイトのユーザーは、ユーザー エクスペリエンスの品質を向上させ、ユーザー エンゲージメントを高めるため、サイトにとって良いテストに合格しません。このソリューションは、ユーザーの行動を分析してデータベースをチェックし、要求が正当なユーザーまたはロボットからのものであるかどうかを判断する一種のエキスパート システムです。ところで、Twitter と Facebook は依然としてパスワード検証に CAPTCHA を使用していますが、これはそのような保護の効率という点で非常に議論の余地のある方法です.
大量のボットが任天堂のサイトにサインアップするのに問題があったので、サインアップ ページにマリオの画像を 1 枚だけ載せました (画像データに「マリオ」と書かれていないことを確認してください)。一言で。" それ以来、ボットのサインアップは 1 件もありません。これが実際に良い解決策であるかどうかはわかりませんが、ボットがどれほど賢いかはわかりません. それがうまくいったことにちょっと驚いています。
理論的には、少数の正当なユーザーを締め出している可能性がありますが、マリオが誰であるかを知らない任天堂サイトの多くの正当なユーザーを想像するのは難しいです.