ログインの最大試行回数を制限しようとしています。これが私が現在行っていることです:
1.) ログインカウンターをセッションに保存する
2.) セッションに保存されているカウンターを比較するログイン試行ごとに
3.) カウンターが最大試行回数より小さい場合 >> 回数を増やすcounter
4.) カウンタが最大試行回数に等しい場合 >>last access time
セッションの を と比較しcurrent time
ます。
差が (たとえば 20 分) を超える場合は、destroy the session
(ユーザーが試行できるようにするため)。
差が小さい場合は、エラー ページにリダイレクトします。これはすべて正常に機能していますが、ユーザーが Web アプリケーションの残りの部分 (ログイン ページを除く) を単に閲覧している場合でも、このメソッドは失敗します。
これを考慮してください:
1 人のユーザーが最大ログイン試行回数を超えたため、残りのアプリケーションを 20 分間閲覧することにしました。しかし、20 分経ってもログイン試行は失敗します。
これは、counter
が に格納されており、同じセッションでユーザーが Web アプリをブラウズしているためです。そのため、セッションの とsession
の差は よりも大きくないため、失敗します。last access time
current time
20 minute
では、どうすればこの問題を解決できますか。
ありがとうございました。