roymatthieu
Messages postés112Date d'inscriptionjeudi 31 août 2006StatutMembreDernière intervention 3 février 2011
-
12 avril 2010 à 12:27
pysco68
Messages postés681Date d'inscriptionsamedi 26 février 2005StatutMembreDernière intervention21 août 2014
-
13 avril 2010 à 09:18
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.
A voir également:
Bonne pratique de l’utilisation de l’option « Se souvenir de moi » (
pysco68
Messages postés681Date d'inscriptionsamedi 26 février 2005StatutMembreDernière intervention21 août 20148 13 avril 2010 à 08:23
Bonjout Matt,
Tout d'abord celà: il n'y a pas de sécurité absolue, mais ça je pense que tu le sais...
L'utilisation d'un "remind me" est de plus une chose qui provoque l'une ou l'autre possibilité de hack... (rien que tu n'ai pas cité dans ton post...)
Quand à la "bonne pratique";
ne jamais envoyer - même sous forme cryptée - le mot de passe à l'utilisateur (que ce soit pour ce genre de cs où pour une procédure de RAZ de son mot de passe par exemple!), donc pour ton cookie, comme pour ta bdd, ne sauvegarde pas les mots de passes en clair si c'est évitable!
Pour ce qui est du vol de cookie, c'est un risque, si il est trop grand pour ton application, la fonction "remind me" est à proscrire!
Une chose que tu pourrais néanmoins faire, c'est comparer aussi le User-agent (type de navigateur + version etc) qui ne devrais pas changer sans arrêt! C'est peut-être facilement modifiable, mais il faut être au courant de la procédure ;)
J'espère t'avoir donné quelques informations ;)
Cordialement,
pysco68
Messages postés681Date d'inscriptionsamedi 26 février 2005StatutMembreDernière intervention21 août 20148 13 avril 2010 à 09:18
Pour la vérification du cookie c'est une pratique qui a lieue d'être, mais je pense que le plus "sur" est de ne pas sauvegarder d'informations assez importantes (pour être vérifiées de cette façon) dans un cookie...