Bonjour,
Je viens à vous car j’ai une petite question concernant la sécurisation d’un espace membre.
Je précise que j’ai lu pas mal d’article sur la sécurité en PHP.
Préambule :
Je développe actuellement une application pourvue d’un espace membre et je me pose la question quand à la bonne pratique de l’utilisation de l’option « Se souvenir de moi ».
Actuellement, lorsqu’un membre s’identifie et coche cette case, je génère un cookie.
Celui-ci contient l’identifiant et le mot de passe de l’utilisateur (je précise que le contenu du cookie est crypté par une fonction de cryptage utilisant l’algorithme RIJNDAEL qui utilise une clé de cryptage et un vecteur d’initialisation de 32 caractères chacun. Ces deux clé sont généré automatiquement lors de l’installation de l’application et son contenue dans la base de données).
Lorsque le membre reviens sur le site, je lis les informations du cookie, je les décryptes et je les comparent à celles de la base de données, si tout est correct, j’autorise la connexion.
Le contenu des sessions est lui aussi crypté et stocké soit dans un répertoire spécifique de l’application soit dans la base de données (cela dépend des paramètres de configurations de l’application)
J’utilise entre autre les paramètres suivants concernant les sessions :
ini_set('session.cookie_httponly', 1);
ini_set('session.use_cookies', 1);
ini_set('session.use_only_cookies', 1);
ini_set('session.use_trans_sid', 0) ;
ini_set('session.hash_function' , 1);
Questions :
Si le cookie est volé, on sait se connecter -> Comment l’éviter ?
SI le cookie est modifié - selon je doute car sans connaitre la clé de cryptage, c’est tout de même un peu difficile – on sait se connecter -> Comment l’éviter ?
Pour vérifier la modification je pensais générer un hash du contenu et conserver celui-ci afin de le comparer au contenu du cookie avant d’utiliser les données ? Qu’en pensez-vous ?
Merci d’avance pour vos réponses…
Matt.