web-dev-qa-db-ja.com

100%JavaScriptで作成されたキャプチャフォームをバイパスしますか?

JavaScriptがCAPTCHAの応答を処理し、AJAXリクエストであると確信しているものを起動します。

したがって、フローは次のとおりです。

Button -> CAPTCHA-> AJAX

AJAX=自分でリクエストする?それはすべてクライアント側です。すべてのコードを調べてそのリクエストを見つけることは価値がありますか?そのような場合を防ぐために、JavaScript内で一般的に使用されますか?

2
makakas

セキュアなCAPTCHAの場合、AJAXメッセージはユーザーの入力をサーバーに送信します。サーバーは入力を検証し、トークンを返します。トークンはフォームによってフォームに挿入されますJavascript。フォームが送信されると、サーバーはCAPTCHAサービスを使用してトークンを検証します(これはWebサービス呼び出しまたは署名の検証である可能性があります)。AJAX CAPTCHAのセキュリティについて。

AJAX自分でリクエストすることを妨げるものについては、答えは何もありません。しかし、それを正しく行うには、CAPTCHAへの答えを提供する必要があります--想定コンピュータアルゴリズムが決定するのは難しい。

5
Neil Smithline

検証(つまり、ユーザー入力がCAPTCHAのテキストと一致することを確認する)がクライアント側で行われる場合、それをバイパスすることを妨げるものは何もありません。コードを読む必要すらありません。HTTPリクエストAJAX送信してコピーしてください。これは任意のブラウザの開発者ツールで実行できます。

Webセキュリティの非常に基本的なルールは、クライアントを信頼しないことです。クライアントがユーザー入力がCAPTCHAに一致したと言ったからといって、それが本当であるとは限りません。サーバーはその比較を行い、ユーザー入力が本当に正しいことを確認する必要があります。

クライアントのコードを難読化することもできますが、その価値はありません。適切なサーバー検証がなければ、CAPTCHAは価値がありません。

2
Anders