Sessions
Désactiver les identifiants de sessions dans les URLS
En activant « session.use-only-cookies », vous éviterez les attaques qui utilisent des identifiants de sessions dans les URLS.
Le système de gestion des sessions par URL pose un risque supplémentaire de sécurité : un utilisateur peut envoyer son URL avec l’identifiant de session par email à un ami, ou bien le mettre dans ses signets. Cela diffusera alors l’identifiant de session. On le désactive donc.
ini_set('session.use_only_cookies', 1);
ini_set('session.use_trans_sid');', 0);
session_start();
Initialiser les sessions
Session fixation
Quelques explications : http://en.wikipedia.org/wiki/Session_fixation
// Session fixation
// On vérifie qu'une valeur connue de nous même (ici "no_fixation") est présente
// en session, sinon on regénère la session.
if (!isset($_SESSION['no_fixation'])) {
session_regenerate_id(true);
$_SESSION['no_fixation'] = true;
}
Session hijacking
Quelques explications : http://en.wikipedia.org/wiki/Session_hijacking
// Session hijacking
$signature = md5($_SERVER['HTTP_USER_AGENT'] . $_SERVER['HTTP_ACCEPT_CHARSET'] . SALT);
if (!isset($_SESSION['signature'])) {
$_SESSION['signature' ] = $signature;
} elseif ($_SESSION['signature'] !== $signature) {
die('Erreur de session ' );
}
Attention !
J’ai remarqué que sous certains navigateurs l’entête Accept
n’est pas forcément consistant d’une page à l’autre, notamment en actualisant une page. C’est donc un entête à éviter pour la signature.
Laisser un commentaire