Documentation · Chapitre 08

Protéger l’identité
portée par la session.

Le cookie de session contient un identifiant, pas normalement toutes les données. S’il est volé, le serveur peut confondre l’attaquant avec l’utilisateur.

Nous sécurisons reading-list par couches, sans prétendre qu’une seule option suffit.

Les réglages appliqués par PHPAML

HttpOnlyJavaScript ne peut pas lire le cookie
Securecookie envoyé seulement en HTTPS
SameSite=Lax / Strictlimite les envois depuis d’autres sites
use_strict_moderefuse les identifiants non initialisés
use_only_cookiesinterdit l’identifiant dans l’URL

Configurez la durée et SameSite

phpaml — zsh
"session": {
  "lifetime": 7200,
  "same_site": "Lax"
}

PHPAML accepte Lax ou Strict. Lax convient généralement à une navigation Web normale; Strict réduit davantage les envois intersites mais peut gêner certains parcours externes.

Régénérez après un changement d’identité

phpaml — zsh
// Après une connexion réussie
$session->regenerate();
$session->set('user_id', $user->id);

// À la déconnexion
$session->remove('user_id');
$session->regenerate();

La régénération invalide l’ancien identifiant et limite la fixation de session. HTTPS reste indispensable : sans chiffrement du transport, les autres protections ne suffisent pas.