Aller au contenu

Cookie HttpOnly

HttpOnly empêche l’accès direct des scripts au cookie. Les requêtes adaptées peuvent encore l’envoyer ; session et droits restent à vérifier.

Sécurité informatique

Un cookie avec l’attribut HttpOnly n’est pas accessible aux scripts de la page par document.cookie. Le serveur définit cet attribut dans l’en-tête de réponse Set-Cookie. Pour un identifiant de session, cela limite la lecture de sa valeur par du JavaScript injecté. Cela n’empêche pas ce script de s’exécuter.

Séparer identifiant de session et données affichées

Un portail fictif de projets conserve son identifiant de session dans le cookie sessionId. L’interface n’a besoin que du nom affiché pour le message d’accueil. Après vérification de la session et des droits côté serveur, la requête de profil prévue renvoie displayName ; le frontend n’a pas besoin de lire l’identifiant de session.

Le navigateur peut toujours joindre automatiquement un cookie HttpOnly aux requêtes appropriées, y compris celles déclenchées par fetch(). Les autres conditions du cookie restent applicables. Un script injecté pourrait donc parfois agir dans la session ouverte sans connaître la valeur du cookie. Les protections XSS et CSRF et les contrôles de droits côté serveur restent nécessaires.

L’attribut distinct Secure limite l’envoi à HTTPS ; SameSite agit sur l’envoi dans les requêtes intersites. Ces propriétés ont des rôles différents.

Sources