1

CAPTCHA の解決策を売りながら、他のサイトの CAPTCHA を自分のものとして使用する人が増えないのはなぜですか (道徳的な理由は別として)。

私には、そのようなシステムは実装が簡単に思えます:

  • プロキシ サービスを使用して CAPTCHA を完了する必要がある別の Web サイトで何かを実行するスクリプトをセットアップする
  • あなたのサイトのユーザーがCAPTCHAの完了を必要とするタスクを実行するとき、他のサイトがあなたに解決を求めているCAPTCHAを提供するだけです
  • ユーザーがCAPTCHAを解決すると、スクリプトはCAPTCHAのソースである他のサイトで目的のアクションを実行でき、サイトのユーザーもこのプロセスを通じて検証されます

これは当たり前のことですか?そうでない場合、なぜですか?これを防ぐためにできることがあるとすれば、何ができるでしょうか。

4

1 に答える 1

0

キャプチャを取得しています。外部ホストからキャプチャの正確なビジュアルを簡単に取得できると仮定します。これを行うには、参照チェックに合格する必要があります (ほとんどのブラウザー (人間がナビゲートするhttp_referer) では、. session_idまた、とをsecretから保存する必要がありhidden inputます。 結果を確認しています。外部ホストは、保存された変数を最初のリクエストのセッションに関連付けられた変数とリンクする必要があります。これには、トリッキーなcURLメソッドを実装する必要があります。すべて単一の IP から、複数の並列リクエストを処理する必要があります。

独自にキャプチャを生成する場合よりも、外部ホストでキャプチャをハッキングする場合、サーバーはおそらくより多くのリソースを使用します。

防ぐ

  1. http_referer チェック
  2. 単一 IP のリクエストを 1 分あたり 5 などに制限する
  3. 優れたセッション処理とトリッキーな Cookie
  4. JavaScript をリバース エンジニアリングすることは不可能ではありませんが、JavaScript が複雑になればなるほど...
  5. 外部ホストで結果を認識するパターンを見つける必要があります。最も簡単な署名は、Locationヘッダー フィールドである可能性があり/path/success.htmlます。/path/tryagain.php

チャレンジ:

例を準備するために少し時間をかけました: http://woisteinebank.de/test/

この例では、キーを にアタッチsession_id();してデータベースに保存します。リクエストsession_regenerate_id();ごとに新しいセッションがあります。ではcheck.php、データベースの値と値を比較し$_GETます。

このキャプチャを取得する方法を見つけてみてください。私は防御しようとします。あなたのサイトで私のキャプチャが成功するたびに、私はそれを守ろうとします.

于 2013-07-08T19:57:58.490 に答える