ThinkPHPフレームワークには、デフォルトでセッション機能が組み込まれており、データ管理にPHPのセッションメカニズムを使用しています。ただし、アプリインターフェイス開発などの一部のシナリオでは、開発者はセッションメカニズムをオフにし、トークンメカニズムを使用してインターフェイスセキュリティを確保したいと考えています。この記事では、ThinkPhpのセッション関数をオフにする方法と、閉じた後のアプリケーションへの影響を紹介します。
ThinkPhpでは、セッションを閉じる2つの一般的な方法があります。
ThinkPhpソースコードディレクトリでSystem/Session.phpファイルを見つけ、次の構成コードを追加します。
'use_cookies' => false,
'use_trans_sid' => false,
上記の設定では、 use_cookiesはセッションIDがCookieを介して保存されるかどうかを制御し、 use_trans_sidは、セッションIDをURLで渡すことが許可されているかどうかを制御します。これら2つのオプションをオフにした後、セッション関数はもはや有効になりません。
次の構成をアプリケーションの構成ファイル(config.phpなど)に追加できます。
// 閉鎖session自動開始
'SESSION_AUTO_START' => false,
このようにして、システムのデフォルトセッションメカニズムがオフになり、セッションが自動的にオンになりません。
セッション関数をオフにした後、アプリケーションに次の変更が発生します。
セッションを終了した後、PHPのセッション関連機能とグローバル変数( Session_start 、 $ _Sessionなど)は利用できません。
従来のログインステータス管理はセッションに依存し、トークンベースの認証など、閉鎖後に他の方法を使用する必要があります。ログインが成功した後、サーバーはトークンを生成し、クライアントはそれを保存し、その後のリクエストでそれを運びます。サーバーは、トークンを確認することにより、リクエストが合法かどうかを判断します。
セッションメカニズムをオフにすると、サーバーの読み取りおよび書き込みセッションデータが削減され、サーバーの負担を軽減し、アプリケーションのパフォーマンスが向上します。
この記事では、ThinkPhpでの閉鎖セッションの2つの主要な方法を紹介し、セッションを終了した後のアプリケーションへの影響を分析します。特定のセッションは、アプリケーションシナリオとセキュリティのニーズに従って柔軟に選択する必要があります。