session_set_cookie_params()関数は、セッションCookieの有効な時間、パス、ドメイン、安全なHTTPS接続を使用するかどうかなど、PHPセッションCookieのパラメーターを設定するために使用されます。
session_set_cookie_params([
'lifetime' => 3600, // cookie 有効期間(ユニット:2番)
'path' => '/', // cookie パス
'domain' => 'm66.net', // ドメイン名をに設定します m66.net
'secure' => true, // 合格するかどうか HTTPS 伝染 ; 感染 cookie
'httponly' => true, // 禁止されていますか? JavaScript アクセス cookie
'samesite' => 'Strict' // 設定 SameSite 戦略
]);
一生
Lifetimeパラメーターは、セッションCookieの有効期間を数秒で設定するために使用されます。デフォルトでは、ブラウザセッションが終了すると、PHPセッションCookieのライフサイクルが無効です。ブラウザが閉じた後もセッションを有効にする必要がある場合は、より長い有効期間に設定できます。たとえば、 3600は、Cookieが1時間持続することを意味します。
パス
パスパラメーターは、セッションクッキーの有効なパスを制御します。ルートディレクトリ/に設定されている場合、このCookieはすべてのサブディレクトリによって使用されます。特定のパスの下でCookieにアクセスする必要がある場合は、このパスに設定できます。
ドメイン
ドメインパラメーターは、Cookie、つまりどのドメイン名がこのCookieにアクセスできるかの範囲を設定します。クロスドメインセッションサポートを強化するために、このアイテムをM66.NETに設定して、このセッションCookieをドメイン名とそのサブドメインの両方で使用できるようにすることができます。ドメイン名は現在要求されているドメイン名と一致する必要があることに注意してください。そうしないと、Cookieは使用できません。
安全な
安全なパラメーターは、CookieをHTTPSセキュア接続を介してのみ送信できるかどうかを決定します。 Trueに設定すると、ブラウザはこのCookieをHTTPS接続の下でのみ送信します。これは、特に機密データに関しては、会話のセキュリティを強化するための重要な尺度です。
httponly
HTTPonlyパラメーターは、クライアントJavaScriptがCookieにアクセスできるかどうかを制御します。 Trueに設定されている場合、CookieはHTTPプロトコルを介してのみアクセスでき、JavaScriptでアクセスできません。これにより、クロスサイトスクリプト攻撃(XSS)を防ぐのに役立ちます。
SamesIte
同じサイトパラメーターは、クロスサイトリクエストフォーファリー(CSRF)攻撃を防ぐために設計された同じサイトCookieポリシーを制御します。一般的な戦略は次のとおりです。
「Strict」 :現在のサイトでCookieのみを送信できるようにします。
「LAX」 :いくつかのシナリオに適したクロスサイトリクエストの場合、Cookieを送信できます。
「なし」 :Samesiteポリシーを完全に無効にしますが、 SecureをTrueに設定する必要があります。
ユーザーがショッピングカートのページでセッションログインステータスを長期に保つことができるeコマースのWebサイトがあるとしますが、他のページ(ログインページなど)では、このような長いセッションの持続性は必要ありません。さまざまなページのニーズを満たすために、 session_set_cookie_params()を使用して、さまざまなライフサイクルとポリシーを設定できます。
// 設定登录页面的会话 cookie
session_set_cookie_params([
'lifetime' => 1800, // 30 分
'path' => '/',
'domain' => 'm66.net',
'secure' => true,
'httponly' => true,
'samesite' => 'Strict'
]);
// セッションを開始します
session_start();
// 設定购物车页面的会话 cookie
session_set_cookie_params([
'lifetime' => 86400, // 24 時間
'path' => '/cart',
'domain' => 'm66.net',
'secure' => true,
'httponly' => true,
'samesite' => 'Lax'
]);
// セッションを開始します
session_start();
この例では、ログインページのセッション有効期間は30分ですが、ショッピングカートページのセッション有効期間は24時間です。ドメインをM66.netに設定して、両方のページが同じセッションCookieを共有できるようにします。セキュアおよびhttponlyパラメーターの設定は、セッションセキュリティを強化します。
SESSION_SET_COOKIE_PARAMS()を使用すると、開発者がより細かい粒度のセッション管理を達成するのに役立ちます。この関数を使用するためのいくつかの一般的なシナリオは次のとおりです。
強化されたセキュリティ<BR> SecureおよびHTTPonlyパラメーターを使用すると、特に機密情報を処理する場合、セッションCookieが悪意のあるJavaScriptコードによって盗まれ、セキュリティが改善されないようにします。
クロスサイトセッション管理<br> ドメインパラメーターの設定は、複数のサブドメインでセッションCookieを共有できます。これは、複数のサブドメインを越える必要がある大規模なWebサイトまたはアプリケーションに非常に役立ちます。
制御セッションのライフサイクル<BR> 生涯パラメーターを設定することにより、開発者はビジネスニーズに応じてセッションの期間を制御し、既存の無期限からセッションを回避できます。
CSRF攻撃を防ぐ<br> SamesSiteパラメーターを設定すると、クロスサイトの要求フォーファリー攻撃を防ぐことができ、ユーザーデータセキュリティが確保されます。
SESSION_SET_COOKIE_PARAMS()は、PHPの非常に強力で柔軟な機能であり、開発者がセッションCookie管理戦略を正確に制御するのに役立ちます。さまざまなパラメーターを合理的に構成することにより、開発者はアプリケーションのセキュリティを改善するだけでなく、さまざまなニーズに応じて会話管理戦略を最適化できます。この関数を理解して柔軟に適用すると、Webアプリケーションがより堅牢で安全になります。