2012-03-10 13 views
0

可能性の重複は:
Preventing Brute Force Logins on Websites
Limiting user login attempts in PHP防止ブルートフォース

私は形でログに強制ブルートを防止するための最良の方法だろうかを知りたかったです。 意味試行回数と制限時間を保存するにはどうすればよいですか?セッションはいいアイデアですか?

ありがとうございました。

+1

何を試しましたか?これはかなり一般的ですか?ページの更新を超えて何かを続けたい場合は、永続ストレージが必要です。明らかにセッションはその一例です。 –

答えて

2

サイトにヒットした人ごとに自動的にセッションを開始できます。次に、セッション変数にログイン試行回数を格納し、ブロックされている場合はロックが解除されるまでの時間を格納します。

ログインを処理するときに、パスワードとユーザー名が一致せず、期限が切れずに試行回数を超えた場合は、ユーザーにメッセージを表示します。

あなたのデータベーステーブルには、次のようになります。

sessions 
========== 
id 
num_tries //Number of login attemps 
block_expires //If they are blocked, when they can be unblocked. 

このアプローチでは、ユーザーがセッションクッキーを前提とすることを前提としています。彼らは簡単にクッキーをクリアすることでこれを回避することができます。ログインが同じIPアドレスと、彼らは変更されませんアクセスしようとしているアカウントから来ている場合は、その後、

  • :いくつかのものを、あなたがプロセスにいくつかの知性を構築することができることを軽減するために

    設定した期間、アカウント(セッションではない)をブロックします。

+4

攻撃者がセッションを無効にするとどうなるでしょうか? –

0

これについては、hereを参照してください。

失敗した試行のSQLテーブルを、それぞれのタイムスタンプとともに作成できるという合意がありました。その後、失敗したログイン情報を照会し、Cookieを使用して試行回数とタイムスタンプを確認するか、毎回照会します。