ログイン エラーの数とセッション時間を保存します。エラーの最大数に達すると、ログインできなくなります。ただし、Cookie をクリアするとログインできます。どうやって解決すればいいのでしょうか?それともログイン数を制限する他の方法はありますか?ありがとう!
走同样的路,发现不同的人生
データベースにフィールドを追加し、回数を超えた場合はアカウントをロックします...
キャッシュ制御にはmemcacheまたはredisを使用します
$key = ログインアカウント
$value = 失敗したログインの数
$this->set($key,$value);
IP と HTTP_USER_AGENT を使用して、同じユーザーかどうかを判断します
あなたのような状況は、グローバル キャッシュを通じてのみ処理できます。特定のユーザー名のログイン数を制御する場合は、1. キー値キャッシュの場合、統一データ構造 key=value => username={'ログイン数':1} を使用し、redis、memcache、mysql を使用します。 (キャッシュテーブル、カラム[キー値]、インデックスハッシュキーを作成) $userinfo = $cacheobj->get('username')でユーザー情報を取得し、ログイン数を求め、ログイン数を増やす $cacheobj -> set('ユーザー名', $userinfo) 書き戻します
mysql ユーザーログインテーブルに新しいログイン番号カラムを追加し、SQL を呼び出し、取得、判定、自動インクリメント、更新します
、データ構造はユーザー名 = {'ログイン数': 1, 'タイムアウト時間': タイムスタンプ} に更新され、タイムアウトが発生した場合の判定に時間許容度が加算されます。ログイン数は0に設定されています
$cacheobj->set('username', 'ログイン数', timeout)
この場合、タイムアウト列を追加します
データベースにフィールドを追加し、回数を超えた場合はアカウントをロックします...
キャッシュ制御にはmemcacheまたはredisを使用します
$key = ログインアカウント
$value = 失敗したログインの数
$this->set($key,$value);
IP と HTTP_USER_AGENT を使用して、同じユーザーかどうかを判断します
あなたのような状況は、グローバル キャッシュを通じてのみ処理できます。特定のユーザー名のログイン数を制御する場合は、
2. データベースのログイン情報テーブル構造に組み込みます1. キー値キャッシュの場合、統一データ構造 key=value => username={'ログイン数':1} を使用し、redis、memcache、mysql を使用します。 (キャッシュテーブル、カラム[キー値]、インデックスハッシュキーを作成)
$userinfo = $cacheobj->get('username')でユーザー情報を取得し、ログイン数を求め、ログイン数を増やす $cacheobj -> set('ユーザー名', $userinfo) 書き戻します
mysql ユーザーログインテーブルに新しいログイン番号カラムを追加し、SQL を呼び出し、取得、判定、自動インクリメント、更新します
時差を含めたい場合は、、データ構造はユーザー名 = {'ログイン数': 1, 'タイムアウト時間': タイムスタンプ} に更新され、タイムアウトが発生した場合の判定に時間許容度が加算されます。ログイン数は0に設定されています
2. MySQL 以外のキー値キャッシュ (redis、memcache) の場合$cacheobj->set('username', 'ログイン数', timeout)
3. データベースのログイン情報テーブル構造に組み込みますこの場合、タイムアウト列を追加します
これを実装するには、主に実際のシナリオとリソースに応じて無数の方法があります。