Serveur HTTP Apache Version 2.5

Apache > Serveur HTTP > Documentation > Version 2.5 > Modules

# Module Apache mod_session_cookie

Description: | Support des sessions basé sur les cookies
Statut: | Extension
Identificateur de Module: | session_cookie_module
Fichier Source: | mod_session_cookie.c
Compatibilité: | Disponible depuis la version 2.3 d'Apache

### Sommaire

### Avertissement

Les modules de session font usage des cookies HTTP, et peuvent à ce titre être victimes d'attaques de type Cross Site Scripting, ou divulguer des informations à caractère privé aux clients. Veuillez vous assurer que les risques ainsi encourus ont été pris en compte avant d'activer le support des sessions sur votre serveur.

Ce sous-module du module `mod_session` fournit le support du stockage des sessions utilisateur au niveau du navigateur distant dans des cookies HTTP.

L'utilisation de cookies pour stocker les sessions décharge le serveur ou le groupe de serveurs de la nécessité de stocker les sessions localement, ou de collaborer pour partager les sessions, et peut être utile dans les environnements à fort trafic où le stockage des sessions sur le serveur pourrait s'avérer trop consommateur de ressources.

Si la confidentialité de la session doit être préservée, le contenu de cette dernière peut être chiffré avant d'être enregistré au niveau du client à l'aide du module `mod_session_crypto`.

Pour plus de détails à propos de l'interface des sessions, voir la documentation du module `mod_session`.

### Sujets

- Exemples simples

### Directives

### Traitement des bugs

- Journal des modifications de httpd
- Problèmes connus
- Signaler un bug

### Voir aussi

- `mod_session`
- `mod_session_crypto`
- `mod_session_dbd`

## Exemples simples ¶

Pour créer une session et la stocker dans un cookie nommé session, configurez-la comme suit :

### Session stockée au niveau du navigateur

    Session On
    SessionCookieName session path=/

Pour plus d'exemples sur la manière dont une session doit être configurée pour qu'une application CGI puisse l'utiliser, voir la section exemples de la documentation du module `mod_session`.

Pour des détails sur la manière dont une session peut être utilisée pour stocker des informations de type nom d'utilisateur/mot de passe, voir la documentation du module `mod_auth_form`.

## Directive SessionCookieMaxAge ¶

Description: | Définit si les cookies de session doivent spécifier une durée de vie à transmettre au client
Syntaxe: | `SessionCookieMaxAge On|Off`
Défaut: | `SessionCookieMaxAge On`
Contexte: | configuration globale, serveur virtuel, répertoire, .htaccess
Surcharges autorisées: | AuthConfig
Statut: | Extension
Module: | mod_session_cookie

La directive `SessionCookieMaxAge` permet de définir si la durée de vie de la session doit être spécifiée via l'attribut Max-Age du cookie envoyé au client. Lorsqu'elle est définie à "Off", l'attribut Max-Age ne sera pas ajouté et les clients ne renverront le cookie que lorsque "la session courante sera fermée", ce qui correspond souvent à la fermeture du navigateur internet.

L'expiration de la session est cependant toujours validée au niveau du serveur via la directive `SessionMaxAge`.

## Directive SessionCookieName ¶

Description: | Nom et attributs du cookie RFC2109 dans lequel la session est stockée
Syntaxe: | `SessionCookieName nom attributs`
Défaut: | `none`
Contexte: | configuration globale, serveur virtuel, répertoire, .htaccess
Surcharges autorisées: | AuthConfig
Statut: | Extension
Module: | mod_session_cookie

La directive `SessionCookieName` permet de spécifier le nom et les attributs optionnels d'un cookie compatible RFC2109 dans lequel la session sera stockée. Les cookies RFC2109 sont définis en utilisant l'en-tête HTTP `Set-Cookie`.

Une liste optionnelle d'attributs peut être spécifiée, comme dans l'exemple suivant. Ces attributs sont insérés tel quel dans le cookie, et ne sont pas interprétés par Apache. Assurez-vous que vos attributs soient définis correctement selon la spécification des cookies.

### Cookie avec attributs

    Session On
    SessionCookieName session path=/private;domain=example.com;httponly;secure;version=1;

## Directive SessionCookieName2 ¶

Description: | Nom et attributs pour le cookie RFC2965 dans lequel est stockée la session
Syntaxe: | `SessionCookieName2 nom attributs`
Défaut: | `none`
Contexte: | configuration globale, serveur virtuel, répertoire, .htaccess
Surcharges autorisées: | AuthConfig
Statut: | Extension
Module: | mod_session_cookie

La directive `SessionCookieName2` permet de spécifier le nom et les attributs optionnels d'un cookie compatible RFC2965 dans lequel la session sera stockée. Les cookies RFC2965 sont définis en utilisant l'en-tête HTTP `Set-Cookie2`.

Une liste optionnelle d'attributs peut être spécifiée, comme dans l'exemple suivant. Ces attributs sont insérés tel quel dans le cookie, et ne sont pas interprétés par Apache. Assurez-vous que vos attributs soient définis correctement selon la spécification des cookies.

### Cookie2 avec attributs

    Session On
    SessionCookieName2 session path=/private;domain=example.com;httponly;secure;version=1;

## Directive SessionCookieRemove ¶

Description: | Détermine si les cookies de session doivent être supprimés des en-têtes HTTP entrants
Syntaxe: | `SessionCookieRemove On|Off`
Défaut: | `SessionCookieRemove Off`
Contexte: | configuration globale, serveur virtuel, répertoire, .htaccess
Surcharges autorisées: | AuthConfig
Statut: | Extension
Module: | mod_session_cookie

La directive `SessionCookieRemove` permet de déterminer si les cookies contenant la session doivent être supprimés des en-têtes pendant le traitement de la requête.

Dans le cas d'un mandataire inverse où le serveur Apache sert de frontal à un serveur d'arrière-plan, révéler le contenu du cookie de session à ce dernier peut conduire à une violation de la confidentialité. A ce titre, si cette directive est définie à "on", le cookie de session sera supprimé des en-têtes HTTP entrants.