ホームページ  >  記事  >  バックエンド開発  >  PHPセッションコントロールのサンプルコードの詳細な紹介

PHPセッションコントロールのサンプルコードの詳細な紹介

黄舟
黄舟オリジナル
2017-03-14 16:29:551428ブラウズ


概要

http プロトコルはステートレスであり、リクエストごとにサーバーはユーザーを区別できません。 PHP セッション制御は、ユーザーにキー (暗号化された セッション文字列) を提供します。これは、ユーザーの ID の証明でもあり、このキーで開くことができるボックス (データベース、メモリ データベース、またはファイル) を保存します。ボックスにはユーザーのさまざまな 変数情報が含まれています。

この鍵はどこですか?
1、URL クエリ 文字列
2、ブラウザ クッキー

<?php
//page1.php 启动一个会话并注册一个变量session_start();
$_SESSION[&#39;user_var&#39;] = "hello,codekissyoung!";
//这里的可以将$_SESSION理解为用户的箱子,实际的实现是php在服务器端生成的小文件
?>
<?php
//page2.php
session_start();
echo $_SESSION[&#39;user_var&#39;];
//通过钥匙访问自己的箱子内的变量
$_SESSION[&#39;user_var&#39;] = "bey,codekissyoung!";
<?php//page3.php 销毁钥匙,一般在用户注销时,访问page3.php文件session_start();
session_destroy();?>

を使用した従来のPHPセッション 質問する、キーはどこにありますか?ユーザーにキーを与える操作を見ませんでしたか?
この操作は、PHP によってバックグラウンドで行われます。page1.php にアクセスしてプログラム session_start(); を実行すると、PHP はその時点の条件 (ユーザー IP、ブラウザー番号、時刻、など) 変数 http 応答がクライアントに返された後、PHPSESSID はブラウザーの Cookie にすでに保存されており、このドメイン名に再度アクセスするたびに、PHPSESSID がサーバーに送信されます。この PHPSESSID が、ここで話しているユーザー キーです。

もう一つ質問ですが、この PHPSESSID のセキュリティは、盗まれやすいですか、偽造されやすいですか、改ざんされやすいですか?
HTTPS を使用すると改ざんを防ぐことができます。 PHPSESSID は使用せず、偽造を防ぐためにユーザーの秘密キーを生成します。盗難されやすいかどうかについては、実際には研究されていません。たとえば、コンピュータがインターネットに接続されており、ハッカーがコンピュータに侵入したとします。

生成された秘密鍵をブラウザのCookieに保存

设置cookiesetCookie(&#39;key&#39;,&#39;value&#39;,time()+3600);
删除cookiesetCookie(&#39;key&#39;,&#39;&#39;,time()-1);

シングルサインオンを実現: セッション共有

シングルサインオン: 複数のサブシステムがユーザー認証システムを共有し、そのうちの1つにログインすると、すべてのサブシステムにアクセスできます。
次のシナリオを想像してください: サーバー A と B の PHP 環境が同じであると仮定します。ユーザーはサーバー A でキーを取得し、そのキーを使用してサーバー B にアクセスしました。ユーザーはサーバー B を知っていますか?
明らかにそうではありません。サーバー A によって生成されたキーはサーバーによって認識されません。
解決策: ユーザーが A または B にアクセスするかどうかに関係なく、生成されたキーを C (同じデータベースまたはキャッシュ システム) に保存します。ユーザーが再度 A または B にアクセスすると、A と B の両方が C: ユーザーのキーを尋ねます。 . 鍵は合っていますか?正しければ、ユーザーはAまたはBに保管されているボックスを使用できるようになります。

りー

以上がPHPセッションコントロールのサンプルコードの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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