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