ホームページ >バックエンド開発 >PHPチュートリアル >PHP は、セッション control_php の例を通じて認証例を実装します。
セッション制御の考え方は、Web サイト上のセッションに基づいてユーザーを追跡できるようにすることです。詳細なコードはここにまとめられています。必要な友人はそれを参照してください。
概要
http プロトコルは、リクエストごとにステートレスです。サーバーはユーザーを区別できません。 PHP セッション コントロールはユーザーにキー (暗号化されたセッション文字列) を提供します。これはユーザーの ID の証明でもあり、サーバーはこのキーで開くことができるボックス (データベース、メモリ データベース、またはファイル) を保存します。ユーザーのさまざまな可変情報。
従来のPHPセッションの使用法
質問してください、鍵はどこですか?ユーザーにキーを与える操作を見ませんでしたか?
この操作は、PHP によってバックグラウンドで行われます。page1.php にアクセスしてプログラム session_start(); を実行すると、PHP はその時点の条件 (ユーザー IP、ブラウザー番号、時刻、など) 変数 http 応答がクライアントに返された後、PHPSESSID はブラウザーの Cookie にすでに保存されており、このドメイン名に再度アクセスするたびに、PHPSESSID がサーバーに送信されます。この PHPSESSID が、ここで話しているユーザー キーです。
もう一つ質問ですが、この PHPSESSID のセキュリティは、盗まれやすいですか、偽造されやすいですか、改ざんされやすいですか?
HTTPS を使用すると改ざんを防ぐことができます。 PHPSESSID は使用せず、偽造を防ぐためにユーザーの秘密キーを生成します。盗難されやすいかどうかについては、実際には研究されていません。たとえば、コンピュータがインターネットに接続されており、ハッカーがコンピュータに侵入したとします。
生成された秘密鍵をブラウザのCookieに保存します
シングルサインオンの実現: セッション共有
シングル サインオン: 複数のサブシステムがユーザー認証システムを共有します。1 か所でログインすると、すべてのサブシステムにアクセスできます。
次のシナリオを想像してください: サーバー A と B の PHP 環境が同じであると仮定します。ユーザーはサーバー A でキーを取得し、そのキーを使用してサーバー B にアクセスしました。ユーザーはサーバー B を知っていますか?
明らかにそうではありません。サーバー A によって生成されたキーはサーバーによって認識されません。
解決策: ユーザーが A または B にアクセスするかどうかに関係なく、生成されたキーを C (同じデータベースまたはキャッシュ システム) に保存します。ユーザーが再度 A または B にアクセスすると、A と B の両方が C: ユーザーのキーを尋ねます。 . 鍵は合っていますか?正しければ、ユーザーはAまたはBに保管されているボックスを使用できるようになります。
以下はセッション制御による認証を実装するPHPの例です
認証アプリケーションプリンシパル: authmain.PHP
ウェブサイトの有効なユーザーチェック: members_only.php
セッション変数をログアウトし、セッションを破棄します: logout.php
以上がこの記事の全内容です。皆様の学習に役立つことを願っております。また、皆様も Script Home をサポートしていただければ幸いです。