Sessions PHP sécurisées
Configuration recommandée
// En début de script, AVANT session_start()\nini_set('session.cookie_httponly', 1); // Pas accessible en JS\nini_set('session.cookie_secure', 1); // HTTPS uniquement\nini_set('session.cookie_samesite', 'Strict');\nini_set('session.use_strict_mode', 1); // Rejette les IDs inconnus\nini_set('session.gc_maxlifetime', 1800); // 30 min d'inactivité\nsession_start();Régénérer l'ID
// Après connexion réussie\nsession_regenerate_id(true);Vérifications
// Vérifier l'IP et le User-Agent\nif ($_SESSION['ip'] !== $_SERVER['REMOTE_ADDR'] ||\n $_SESSION['ua'] !== $_SERVER['HTTP_USER_AGENT']) {\n session_destroy();\n header('Location: /login');\n exit;\n}Stockage Redis
Pour les applications à fort trafic, stockez les sessions dans Redis au lieu de fichiers:
ini_set('session.save_handler', 'redis');\nini_set('session.save_path', 'tcp://127.0.0.1:6379');
Cet article vous a-t-il été utile?
Articles similaires