1

私はブルートフォースログインの試みのための簡単な解決策を書いています。失敗した試行が多かった場合は、応答を送信する前に遅延を追加する必要があります。個々のリクエストに遅延を追加するために、皆さんは何を提案しますか?特定のリソースを提供するスレッドが次のリクエストで影響を受けないように、リクエストごとに設定する必要があります。

ありがとう。

編集:この質問によると、Webfaction time.sleepでApacheを実行すると、同じリソースへの次のリクエストが遅延します。

では、この場合、time.sleepの代わりになるものは何でしょうか?

4

3 に答える 3

1

私が間違っている場合は反対票を投じてください。ただし、各スレッドは一度に1つのリクエストしか処理しないと思います。したがって、遅いリクエストが必要な場合はtime.sleep、そのスレッドでを実行するだけで、サーバーは他の同時リクエストに影響を与えることなく、リクエストの処理に時間がかかります。

于 2013-03-25T19:56:52.463 に答える
1

スレッド化されたサーバーで応答を遅らせると、サービスはDOS攻撃を受けやすくなります。攻撃者は一度にmayリクエストを送信する可能性があり、すべてのスレッドが一度にスリープします...

同じIPからの試行回数が多すぎる場合は、CAPTCHAに問い合わせる方がよいでしょう。

Upd:フロントエンドとしてTwisted(またはTornadoですが、使用したことはありません)とnginx(Apacheではありません)を使用します。TwistedとDjangoの両方を使用することもできますが、Djangoの認証とTwistedとのセッションを模倣するコードを記述し、適切なデータをデータベースに書き込む必要があります。

于 2013-04-05T08:52:22.373 に答える
0

Httpはステートレスプロトコルです。リクエストを接続する唯一の方法は、セッション情報をクライアント側のどこかに保存することです。クライアントの動作を制御できないため、サーバー側で失敗したログイン試行をログに記録し、それらのアカウントのログインルーチンを遅らせるのが最善の方法です。

于 2013-03-25T20:07:42.360 に答える