0, 'path' => '/', 'domain' => '', 'secure' => self::isHttps(), 'httponly' => true, 'samesite' => 'Lax', ]); } session_start(); self::$started = true; } /** * Vrai si la requête courante arrive en HTTPS, directement ou via un proxy * de confiance. Sans cette détection, le cookie de session serait marqué * « secure » sur une installation HTTP et la session ne fonctionnerait plus. */ public static function isHttps(): bool { if (($_SERVER['HTTPS'] ?? '') !== '' && strtolower((string) $_SERVER['HTTPS']) !== 'off') { return true; } if ((int) ($_SERVER['SERVER_PORT'] ?? 0) === 443) { return true; } return strtolower((string) ($_SERVER['HTTP_X_FORWARDED_PROTO'] ?? '')) === 'https'; } }