'/', 'httponly' => true, 'samesite' => 'Lax' // Lax erlaubt den Wechsel zwischen /home und /test ]); session_start(); } // 1. Ist der User eingeloggt? if (!isset($_SESSION['user_email'])) { header('Location: /'); exit(); } // 2. Browser-Check gegen Session Hijacking if (!isset($_SESSION['user_agent'])) { $_SESSION['user_agent'] = $_SERVER['HTTP_USER_AGENT']; } elseif ($_SESSION['user_agent'] !== $_SERVER['HTTP_USER_AGENT']) { session_destroy(); header('Location: /'); exit(); } // 3. Rechte-Check (Admins dürfen immer rein) $isAdmin = isset($_SESSION['is_admin']) && $_SESSION['is_admin'] === true; $hasProjectAccess = isset($current_project) && isset($_SESSION['user_projects']) && in_array($current_project, $_SESSION['user_projects']); if (!$isAdmin && !$hasProjectAccess) { // Kein Admin und kein spezifischer Projekt-Zugriff header('Location: /'); exit(); } ?>