ユーザーのログイン状態を維持するための PHP メソッド
1. ['uid'=>123, ' などのユーザー情報を変更します。 username '=>'testuser'] の配列は文字列にシリアル化され、その文字列は可逆暗号化アルゴリズムを使用して暗号化され、userinfo キーを使用して COOKIE に書き込まれます。
2. 可逆暗号化アルゴリズムは復号化が容易であるため、他人が暗号化ルールを推測すると、この COOKIE の内容を簡単に改ざんし、暗号化ルールに従って暗号化して偽造することができます。それ。
そこで、別の infodig COOKIE を追加します。これは、上記の userinfo COOKIE コンテンツをソルトに追加し、不可逆暗号化アルゴリズムを使用してハッシュを生成します。ソルトについては、自分たちで決定できます。不可逆的なアルゴリズム たとえば、md5、または md5 に複数回ソルトを加えたものなどです。
3. 上記 2 つの Cookie については、セキュリティを強化し、XSS 攻撃によるユーザーの取得を防ぐために、http-only 属性を設定できます。
サーバーが上記の 2 つの COOKIES が存在すると判断した後、
1. infodig が userinfo と一致するかどうかを確認します (infodig の生成方法を使用して userinfo の内容を計算した後、 COOKIE アップロードされた infodig は一致しますか?
2. infodig 検証に合格した後、復号アルゴリズムを使用して userinfo 文字列を復号し、ユーザー情報を取得します。ユーザー情報の uid がユーザー テーブルに存在する場合、 write SESSION and keep it through SESSION. このセッションの概要
:
COOKIE を使用してユーザー情報を記録することは可能です (もちろん、保存することはお勧めしません)電子メール、携帯電話、さらにはパスワードなど、COOKIE 内のユーザーに依存するものは、uid、ユーザー名、その他の識別子などのログインに役立つ部分のみを記録し、ニックネームは場所によってはユーザー エクスペリエンスを向上させる可能性があります)。この COOKIE がユーザーに表示されることは確実です。私たちがしなければならないことは 2 つです:
1. ユーザーには理解できないようにし、サーバーだけがそれを知っているようにします (可逆暗号化アルゴリズム)
2. ユーザーが理解していても、簡単に偽造することはできません (不可逆暗号アルゴリズム) カラムアルゴリズム)
推奨チュートリアル: PHP ビデオチュートリアル
以上がPHPでユーザーをログイン状態に保つ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。