ajax を介して CAPTCHA を検証することは合理的 (または安全) ですか? ページをリロードせずに登録フォームを配置したい。安全ですか?(Validation[1] と Form プラグインを使用しています)
[1] http://bassistance.de/jquery-plugins/jquery-plugin-validation/
何かを保護するために JavaScript に頼ることはできません。最初のパスとして使用できますが、サーバーでキャプチャ検証を行う必要があります (実行する予定のようです)。たとえば、http ://www.howtocreate.co.uk/tutorials/javascript/security を参照してください。
完全な AJAX ソリューション (ページのリロードなし) に関する私の懸念は、キャプチャが無効であっても、ユーザーが POST-back からの戻り値をバイパスして処理を続行できる可能性があることです。ただし、最終的にはすべてがサーバー側で行われるため、サーバー セッションでのキャプチャの失敗を追跡し、サインアップ フォームの最後で結果を再確認することができます。キャプチャが有効でない場合、そのクライアントから受け取った他のデータに関係なく、サインアップを拒否する必要があります。
これを実装する合理的な方法は次のとおりです。
1) フォーム ページが要求されたら、セッション固有のサーバー側キーを生成します。
2) ユーザーが [送信] を押したら、AJAX 呼び出しを使用して、ユーザーが入力したキャプチャ テキストをサーバーに送信します。
3) サーバーは、ユーザーが送信した値をチェックします。キャプチャ内のテキストと等しい場合は、手順 1 で生成されたサーバー側のキーを返します。
4) ブラウザはサーバー側の鍵を持っています。フォームの送信時に、ブラウザーによって指定されたサーバー側のキーが手順 1 で生成されたサーバー側のキーと一致することを確認します。一致する場合、ユーザーはキャプチャを渡したに違いないため、要求を処理します。
はい、php と ajax を使用して実行できますが、キャプチャがリロード ボタンをロードするたびにキャッシュをクリアする必要があります。ここにあなたのための完璧な例があります.. http://www.thetutlage.com/demo/captcha/
編集 | 記事のリンクhttp://www.thetutlage.com/post=TUT120も見つけました
AJAX を使用している場合でも、サーバーを呼び出して検証するため、サーバー側のままです。