ホームページ >バックエンド開発 >PHPの問題 >PHPでユーザーをログイン状態に保つ方法

PHPでユーザーをログイン状態に保つ方法

王林
王林オリジナル
2019-10-15 13:14:515197ブラウズ

PHPでユーザーをログイン状態に保つ方法

ユーザーのログイン状態を維持するための 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。