PHPログイン状態とセキュリティの検証
4023 ワード
固定された秘密鍵でsaltを作るのはよくありません.秘密鍵が漏れると面倒になります.そして、最も苦痛なのは、あなたが漏洩しているかどうかを知らないことです.
ユーザーのパスワード文字列はsaltとしてより良い方法です
署名文字列:
自分で発揮できるものは何ですか?
クッキーに格納されている文字列は
次に、ユーザーにサーバ側のキャッシュを記録する必要があります.キャッシュはユーザー番号でクエリーされ、少なくともユーザーのパスワードが含まれています.
ユーザーが要求するたびに、キャッシュからパスワードを取りに行ってデジタル署名を再計算します.
次のようなメリットがあります.秘密鍵漏洩の問題は存在せず、問題が発生しても全ユーザ に影響を与えることはない. slat文字列の漏洩はユーザのパスワードの漏洩に等しく、論理的に厳密な である.$token文字列を持っている人がいても、ユーザーがパスワードを変更すると、古い$tokenはすぐに失効します. これに基づいて、ユーザーレコード設計の専門的なフィールドであるsaltが、ユーザーログインが成功するたびにランダム文字列を生成してsalt内に更新し、デジタル署名計算用に
これにより、ユーザーが再ログインするたびに、以前の$tokenは必ず失効し、セキュリティが向上するだけでなく、毎回1人だけログインして使用できるようになります.
最後に、ユーザーがパスワードを変更した後、キャッシュを更新することを忘れないでください.
PS:
私自身のシステムはユーザーパスワードを使ってデジタル署名を計算する以外に、ブラウザUAを使って固定秘密鍵の方式をプラスして$tokenに対して対称暗号化をしてやっとcookieの中に置いて、更に多くの保護です
======================================================================================
今私はこのようにしています.
配列:
他のページの検証は見ていました.また、IP、UserAgentなどのパラメータをバインドすることもできます.security_token
ユーザーのパスワード文字列はsaltとしてより良い方法です
署名文字列:
$sign = md5('$user_id+$user+_password[+ UA[+IP [...]]]');
自分で発揮できるものは何ですか?
クッキーに格納されている文字列は
$token = $user_id.','.$sign;
次に、ユーザーにサーバ側のキャッシュを記録する必要があります.キャッシュはユーザー番号でクエリーされ、少なくともユーザーのパスワードが含まれています.
ユーザーが要求するたびに、キャッシュからパスワードを取りに行ってデジタル署名を再計算します.
次のようなメリットがあります.
// $user_salt
$sign = md5('$user_id+$user_password+$user_salt+...');
これにより、ユーザーが再ログインするたびに、以前の$tokenは必ず失効し、セキュリティが向上するだけでなく、毎回1人だけログインして使用できるようになります.
最後に、ユーザーがパスワードを変更した後、キャッシュを更新することを忘れないでください.
PS:
私自身のシステムはユーザーパスワードを使ってデジタル署名を計算する以外に、ブラウザUAを使って固定秘密鍵の方式をプラスして$tokenに対して対称暗号化をしてやっとcookieの中に置いて、更に多くの保護です
======================================================================================
今私はこのようにしています.
配列:
$cookie = array();
$cookie['username'] = '';
$cookie['nickname'] = '';
$cookie['email'] = '';
$cookie['userid'] = '';
$cookie['security_token'] = '';
$cookie = serialize($cookie);
$seCookie = AES::encode(SYSTEM_AUTH_KEY,$cookie);
Cookie::set('__token',$seCookie);
Cookie::set('__security_token',$security_token);
/**
* cookie id security_token
*/
他のページの検証は見ていました.また、IP、UserAgentなどのパラメータをバインドすることもできます.security_token