[gull] Préfixe pour PHP session.name

Cédric Dufour cedric.dufour at ced-network.net
Mon Feb 29 12:39:49 CET 2016


e
On 29/02/16 10:41, Benoit Vianin wrote:
> Pourquoi pas en changeant le chemin des sessions pour chaque vhost
> php_value session.save_path "/var/mysessionforproject_1"

C'est effectivement la meilleure solution.

Le détail du fonctionnement interne de la sauvegarde des sessions PHP est expliqué ici:
http://php.net/manual/en/class.sessionhandler.php

Par défaut, PHP sauvegarde la session dans un fichier "sess_<SESSION_ID>".
La forme du <SESSION_ID> dépend quant à lui des paramètres 'session.hash_function' et 'session.hash_bits_per_character', selon:
http://php.net/manual/en/session.configuration.php

Aparté sécuritaire:
Au niveau sécurité, si le session_handler est modifié afin de sauvegarder le fichier de session avec un nom différent, il faudrait idéalement éviter que ce nom puisse identifié le client à qui appartient la session; en d'autres mots, ce serait une mauvaise idée de sauvegarder la session dans un fichier contenant l'adresse IP du client.
À noter que souvent, cette règle n'est pas respectée car le contenu du fichier n'est par défaut par encrypté et que les applications ont tendance à y sauvegarder des données sensibles sans autre forme de procès. Au cas un serveur hébergeant des données sensibles (ex; base de données client...) est compromis - ça arrive à tout le monde un jour ou l'autre! - vous êtes bons pour alerter le préposé à la protection des données que vous avez eu une fuite de données (ce qui sera bientôt obligatoire si la Suisse s'aligne sur les directives européennes encore en discussion à ce sujet).
Un système très critique du point de vue des données devrait donc utiliser un session_handler qui: 1. encrypte les données contenu dans le fichier (ex: avec la <SESSION_ID> comme passphrase, la clef d'encryption elle-même étant dérivée avec PBKDF2 par exemple); 2. sauvegarde le fichier de session sous un nom qui ne révèle pas la <SESSION_ID> (ex: avec un hash cryptographique de cette dernière)

Bon hack,

Cédric D.

>
> Le 2016-02-29 10:34, Daniel Cordey a écrit :
>> On 29. 02. 16 10:15, TISSOT Jacques wrote:
>>
>>> J’ai fouillé Internet à la recherche d’une possibilité de créer un
>>> préfixe ou un suffixe au nom de session. Je n’ai pas trouvé, à part
>>> depuis le script php lui-même ; ou alors je n’ai pas utilisé les bons
>>> mots-clés. Y aurait-il un moyen, au niveau du system manager, de nommer
>>> les fichiers de session en incluant le nom du site ou sous-site ? En
>>> modifiant par exemple la variable ci-dessous dans le php.ini ?
>>>
>>> session.name = PHPSESSID
>>
>> Ca ?
>>
>>
>> <?php
>>
>> /* set the session name to WebsiteID */
>>
>> $previous_name = session_name("WebsiteID");
>>
>> echo "The previous session name was $previous_name<br />";
>> ?>
>>
>> http://php.net/manual/en/function.session-name.php
>>
>> dc
>> _______________________________________________
>> gull mailing list
>> gull at forum.linux-gull.ch
>> http://forum.linux-gull.ch/mailman/listinfo/gull
> _______________________________________________
> gull mailing list
> gull at forum.linux-gull.ch
> http://forum.linux-gull.ch/mailman/listinfo/gull


More information about the gull mailing list