37 lines
1.1 KiB
PHP
37 lines
1.1 KiB
PHP
<?php
|
|
|
|
// Define um nome de sessão específico para a aplicação
|
|
$session_name = 'flatlogic_app_session';
|
|
session_name($session_name);
|
|
|
|
// Determina se a conexão é segura, considerando o proxy reverso (Cloudflare)
|
|
$is_secure = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') ||
|
|
(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https');
|
|
|
|
// Configurações de segurança para o cookie da sessão
|
|
if ($is_secure) {
|
|
// Configuração para produção sob HTTPS (essencial para proxies)
|
|
session_set_cookie_params([
|
|
'lifetime' => 0,
|
|
'path' => '/',
|
|
'domain' => '',
|
|
'secure' => true,
|
|
'httponly' => true,
|
|
'samesite' => 'None' // 'None' requer 'secure' => true
|
|
]);
|
|
} else {
|
|
// Configuração para desenvolvimento local (HTTP)
|
|
session_set_cookie_params([
|
|
'lifetime' => 0,
|
|
'path' => '/',
|
|
'domain' => '',
|
|
'secure' => false,
|
|
'httponly' => true,
|
|
'samesite' => 'Lax'
|
|
]);
|
|
}
|
|
|
|
// Inicia a sessão
|
|
if (session_status() == PHP_SESSION_NONE) {
|
|
session_start();
|
|
} |