Problème de sécurité avec des sessions

Suivre ce topic
Ce topic est suivi par : Personne...
TheFlameflo

TheFlameflo Le 15 juillet 2016 à 06:09 (Édité le 25 janvier 2019 à 17:51)

Salut !

En cherchant un peu sur Google à quel point les variables sont sécurisées, je suis tombée sur une réponse sur un sujet de StackOverflow qui parlait d'Ajax et des sessions.

J'ai donc décidé de créer un petit fichier PHP simple avec un session_start, une déclaration de variable de session (avec un test !isset) et un echo de celle ci.

La valeur à la base était un nom.

J'ai donc décidé de créer un petit script (très très) simple qui redéfinissait la variable de session pour une autre valeur.
J'ai donc stocké celui-ci à quelque part d'autre dans mes fichiers et avec Ajax, j'ai chargé ce fichier.
J'ai donc remarqué que la valeur de ma variable de session a donc été changée.

Je me demande donc : est-ce que c'est uniquement, car ça reste sur mon PC ou c'est une vraie faille.

Le problème est que n'importe qui peut changer la variable de session ce qui est un problème s'il connaît le nom de ceux-ci.

Avez-vous des pistes pour bloquer la faille ?

Merci d'avance !
Nobodief

Nobodief Le 15 juillet 2016 à 23:45 (Édité le 15 juillet 2016 à 23:56)

Si tu utilise un script appliqué directement dans tes fichiers de site, ce n'est pas une faille, c'est tout simplement toi qui fait cette manipulation, il est donc normal que ta valeur change.

Les failles de ce genre sont faits directement sur ton site, sans avoir besoin de fichier à injecter, l'utilisateur utilise un code (javascript) en changeant les propriétés de la page via l'inspecteur d'élément fournis par le navigateur.

Si tu as vraiment un doute et que tu souhaite améliorer la sécurité de tes session, tu dois les analyser avant d'en traiter les données :

  • Utilise des nom de session non prédictible plutôt que des sessions au nom simple comme (id). 
  • Filtrer les données des sessions en précisant le type de caractère qui puissent y être ajouté.
  • Analyser les valeurs de tes sessions avant de les utilisés (Vérifie que le filtre à bien fait son taff).
  • Modère le nombre de session que tu créé, pour ma part j'utilise les sessions uniquement pour les comptes utilisateurs, les informations collective du site, gestion du temps, ect..
Et si vraiment tu à vraiment une peur intensive, redéfini la méthode d'appel des sessions de ton site, un petit code que j'avais trouver sur une documentation (désolé pour les sources, j'ai perdu le lien) :
/* Méthode session */
foreach ($_SESSION as $key => $value) {    $NOUVELLE_VARIABLE[$key]=htmlentities($value, ENT_QUOTES);
}

/* Marche avec Get, ect.. */
foreach ($_GET as $key => $value) {    $GET_SESSION[$key]=htmlentities($value, ENT_QUOTES);
}
Du coup maintenant tu peux utiliser : 
$NOUVELLE_VARIABLE['AUTH'] = array(
    'Session_Auth_Option_ID' => 'Valeur',
    'Session_Auth_Option_count' => 'Valeur'
);
Mais nous somme en Php 7, je pense que ce genre de problème ont été pris en charge depuis, car la plupart des failles ne proviennent pas de session, c'est rare qu'il y est un réel soucis.

Évite de trop de tourmenter sur la question de la sécurisation, tu pourras faire tout ton possible, il y aura toujours une faille à exploiter.
TheFlameflo

TheFlameflo Le 16 juillet 2016 à 02:08

Salut !

Merci de m'avoir conseillé ! 😀

Je vais essayer de suivre tout ça ! 😄
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte