ovunctukenmez / samesite-session-starter
此类允许启用 SameSite 的 session_start。
dev-master
2020-04-02 16:03 UTC
This package is auto-updated.
Last update: 2024-09-29 05:55:34 UTC
README
此 PHP 类通过修改 session_start 函数创建的头部,启用支持 SameSite 的 PHP 会话。浏览器代理也会与不兼容的浏览器列表进行核对。
用法
开始 samesite none php 会话
require_once 'SameSiteSessionStarter.php';
SameSiteSessionStarter::session_start();
开始 samesite strict secure php 会话
require_once 'SameSiteSessionStarter.php';
SameSiteSessionStarter::$samesite = 'Strict';
SameSiteSessionStarter::$is_secure = true;
SameSiteSessionStarter::session_start();
Composer
composer require ovunctukenmez/samesite-session-starter
注意
SameSite=None(默认设置)仅与安全 cookie 一起工作。
因此,请确保使用 https 协议以正确启动会话。
如果您已经使用旧设置启动了会话,您需要先清除其 cookie,以便使用 session_start() 函数设置新的 cookie。
以下是一个使用 SameSiteCookieSetter 编程清除先前会话 cookie 的示例。
// https://github.com/ovunctukenmez/SameSiteCookieSetter
require_once 'SameSiteCookieSetter/SameSiteCookieSetter.php';
session_start();
$params = session_get_cookie_params();
$samesite_session_cookie_params = array(
'samesite' => 'None',
'secure' => true,
'expires' => time() - 3600,
'path' => $params['path'],
'domain' => $params['domain'],
'httponly' => isset($params['httponly']) ? $params['httponly'] : false
);
SameSiteCookieSetter::setcookie(session_name(),session_id(),$samesite_session_cookie_params);
要设置 samesite cookies,您可以使用 SameSiteCookieSetter。