PHP : Session , sécurité , cookies
12 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
PHP : Session , sécurité , cookies
Bonjour,
1 ) J'aimerais faire un système d'espace membres par sessions ( car les cookies ça pose des problèmes au niveau de la sécurité ) mais j'aimerais que le système garde un souvenir du visiteur pendant une durée " illimitée " , afin que le visiteur n'ait pas à se re-connecter à chaque fois qu'il ferme son navigateur.
Est-ce possible ?
2 ) Est-ce que le fait de mettre un
Tout en étant en register_globals = on peut constituer un trou de sécurité ?
Merci beaucoup et bonne journée
KL
1 ) J'aimerais faire un système d'espace membres par sessions ( car les cookies ça pose des problèmes au niveau de la sécurité ) mais j'aimerais que le système garde un souvenir du visiteur pendant une durée " illimitée " , afin que le visiteur n'ait pas à se re-connecter à chaque fois qu'il ferme son navigateur.
Est-ce possible ?
2 ) Est-ce que le fait de mettre un
- Code: Tout sélectionner
<?php echo $variable; ?>
Tout en étant en register_globals = on peut constituer un trou de sécurité ?
Merci beaucoup et bonne journée
KL
Re: PHP : Session , sécurité , cookies
kinglouis a écrit:les cookies ça pose des problèmes au niveau de la sécurité
En quoi ? Je veut bien plus de détails ...
Autrement, non, une session, de par son nom, ne dure que le temps de la session, et n'est pas illimité. Il faut un cookie pour être illimité.
Après, $variable représente quoi ?
Ta session ? Alors non, c'est pas bon, utilise $_SESSION['variable']
1 ) Ben immagine que tu stockes l'id du membre dans un cookie et que le visiteur modifie son cookie > il peut faire ce qu'il veut , et se faire passer pour n'importe quel autre membre .
Avec les sessions , il ne peut pas modifier cet id !
2 ) Pour la variable , ça représente un message que je souhaite afficher .
Genre " index.php?message=votre inscription est réussie " affiche " votre inscription est réussie " sur la page index .
Ca peut constituer une faille ?
Avec les sessions , il ne peut pas modifier cet id !
2 ) Pour la variable , ça représente un message que je souhaite afficher .
Genre " index.php?message=votre inscription est réussie " affiche " votre inscription est réussie " sur la page index .
Ca peut constituer une faille ?
moi j'utilise le cookie seulement pour faire partir la session, pour qu'en tant que visiteur, il n'y ai pas de session (pour le referencement) et des identification, je crée un cookie, et si le cookie existe -> session_start()
ensuite, que tu soit en register_global on ou off, il faut coder proprement, c'est à dire $_GET['varible'] pour les variables passées par l'URL, $_POST['variable'] pour les variables de formulaire, et $_SESSION['variable'] pour les variables de session. utiliser $variable directement ouvre les portes aux failles de sécurité
ensuite, que tu soit en register_global on ou off, il faut coder proprement, c'est à dire $_GET['varible'] pour les variables passées par l'URL, $_POST['variable'] pour les variables de formulaire, et $_SESSION['variable'] pour les variables de session. utiliser $variable directement ouvre les portes aux failles de sécurité
Que tu crois !
La session fonctionne de la manière suivante :
- Lors de l'initialisation, un sessid est attribué à l'utilisateur. celui-ci est placé dans un cookie de session
Et les données de la session sont placées sur le serveur.
Lorsque tu récupère une donnée de session, il prends celle qui a le bon identifiant de session.
Tu modifie le cookie de session, tu modifie l'identifiant à ton gré.
MAIS il faut encore connaitre l'identifiant de session de l'autre visiteur ...
Pourquoi ne pas partir sur une idée similaire pour tes cookies ? Un identifiant de session cookie généré aléatoirement, mais unique, et qui te permet de récuperer les informations de l'utilisateur.
Pour $variable, mets : htmlentities($_GET['variable']);
Et ca ne posera pas de problèmes.
La session fonctionne de la manière suivante :
- Lors de l'initialisation, un sessid est attribué à l'utilisateur. celui-ci est placé dans un cookie de session
Et les données de la session sont placées sur le serveur.
Lorsque tu récupère une donnée de session, il prends celle qui a le bon identifiant de session.
Tu modifie le cookie de session, tu modifie l'identifiant à ton gré.
MAIS il faut encore connaitre l'identifiant de session de l'autre visiteur ...
Pourquoi ne pas partir sur une idée similaire pour tes cookies ? Un identifiant de session cookie généré aléatoirement, mais unique, et qui te permet de récuperer les informations de l'utilisateur.
Pour $variable, mets : htmlentities($_GET['variable']);
Et ca ne posera pas de problèmes.
C'est simple tu mets deux cookies, un avec un identifiant généré aléatoirement de 23 caractères par exemple faudra déjà avoir de la chance pour tomber sur une clefs de 23 caractères existante et ensuite dans le deuxième cookie le mot de passe.
Je vois pas comment a moins d'avoir une mega chance quelqu'un peut alors trouver la paire. Et enfin si il y a plus de trois echec tu bloques l'accès c'est à dire que tu ne test plus si le mot de passe correspond jusqu'a déblocage du compte.
Encore une fois un cookie jusqu'a preuve du contraire n'est pas une faille de sécurité c'est uniquement une info qui est stocké sur l'ordi de l'internaute les failles sont l'utilisation qu'on en fait si par exemple l'internaute partage sont disque complet evidement c'est pas good, si l'internaute n'est pas chez lui c a d dans un NET CAFE ou autre alors il faut le prévenir de ne pas enregistrer ses cookies.
A+
Je vois pas comment a moins d'avoir une mega chance quelqu'un peut alors trouver la paire. Et enfin si il y a plus de trois echec tu bloques l'accès c'est à dire que tu ne test plus si le mot de passe correspond jusqu'a déblocage du compte.
Encore une fois un cookie jusqu'a preuve du contraire n'est pas une faille de sécurité c'est uniquement une info qui est stocké sur l'ordi de l'internaute les failles sont l'utilisation qu'on en fait si par exemple l'internaute partage sont disque complet evidement c'est pas good, si l'internaute n'est pas chez lui c a d dans un NET CAFE ou autre alors il faut le prévenir de ne pas enregistrer ses cookies.
A+
Tout d'abord , merci pour vos réponses , je vais encore vous demander quelques précisions :
1 ) Les cookies et les sessions
>> En quoi ce cookie diffère-t-il du cookie souvent nomné PHPSESSID qui est créé automatiquement par l'utilisation des sessions ?
Quelle serait la différence avec le cookie créé par les sessions ?
Et moi après , comment je retrouve l'identifiant et le mot de passe ?
Moi en fait il faut qu'un " id " soit transmis de page en page mais si je le génère aléatoirement comme tu dis , comment je retrouve le bon vrai " id " ?
2 ) echo $variable;
Ok merci je ferai ça
3 ) Register_globals
Est-ce que , si on est à register_globals on ( donc le truc pas top niveau sécurité ) , qu'on écrit echo $POST['variable']; et qu'on fait page.php?variable=lalalalalala , ça va afficher lalalalala ? ( en clair est-ce qu'en register globals on , même si on met $POST , les variables passent par URL ? )
Merci !
1 ) Les cookies et les sessions
moi j'utilise le cookie seulement pour faire partir la session, pour qu'en tant que visiteur, il n'y ai pas de session (pour le referencement) et des identification, je crée un cookie, et si le cookie existe -> session_start()
>> En quoi ce cookie diffère-t-il du cookie souvent nomné PHPSESSID qui est créé automatiquement par l'utilisation des sessions ?
Pourquoi ne pas partir sur une idée similaire pour tes cookies ? Un identifiant de session cookie généré aléatoirement, mais unique, et qui te permet de récuperer les informations de l'utilisateur.
Quelle serait la différence avec le cookie créé par les sessions ?
C'est simple tu mets deux cookies, un avec un identifiant généré aléatoirement de 23 caractères par exemple faudra déjà avoir de la chance pour tomber sur une clefs de 23 caractères existante et ensuite dans le deuxième cookie le mot de passe.
Et moi après , comment je retrouve l'identifiant et le mot de passe ?
Moi en fait il faut qu'un " id " soit transmis de page en page mais si je le génère aléatoirement comme tu dis , comment je retrouve le bon vrai " id " ?
2 ) echo $variable;
Pour $variable, mets : htmlentities($_GET['variable']);
Et ca ne posera pas de problèmes.
Ok merci je ferai ça
3 ) Register_globals
Est-ce que , si on est à register_globals on ( donc le truc pas top niveau sécurité ) , qu'on écrit echo $POST['variable']; et qu'on fait page.php?variable=lalalalalala , ça va afficher lalalalala ? ( en clair est-ce qu'en register globals on , même si on met $POST , les variables passent par URL ? )
Merci !
le 1 : Ce qui change, c'est que ton cookie reste sur la durée. Un cookie de session est supprimé en fin de session.
Pur récuperer ton identifiant généré aléatoirement, il suffit de le stocker sur ton serveur.
Dans ta base de données, tu ajoute un champ sessid pour ton utilisateur, et tu place cet identifiant dedans.
Pur récuperer ton identifiant généré aléatoirement, il suffit de le stocker sur ton serveur.
Dans ta base de données, tu ajoute un champ sessid pour ton utilisateur, et tu place cet identifiant dedans.
(soit donc un code du genre :
- Code: Tout sélectionner
A LA CONNEXION
//création de la clef :
$session=md5(microtime());
//inscription des variables d'indentification :
setcookie('id',$id,time()+60*60*24*30,'/',false);
setcookie('clef',$session,time()+60*60*24*30,'/',false);
//tu stock dans ta BDD $session
...
SUR TOUTES TES PAGES
//si pas connecté et si un cookie est déclaré :
...
//tu check la base pour regarder si la variable de session est la bonne :
$sql='... WHERE id='.$_COOKIE['id'].' AND session='.$_COOKIE['session'];
//s'il te sort un resultat, tu connect le gars, sinon tu ne fais rien
Ca n'a rien à voir. Regarde plutot la doc pour comprendre comment ca marche. C'est utile pour la sécurité mais il ne faut surtout pas placer ca partout.Pour $variable, mets : htmlentities($_GET['variable']);
Et ca ne posera pas de problèmes.
la doc dit que cette fonction transforme :
* "&" (et commercial) devient "&"
* """ (guillemets doubles) devient """ lorsque ENT_NOQUOTES n'est pas utilisée.
* "'" (single quote) devient "'" uniquement lorsque ENT_QUOTES est utilisée.
* "<" (inférieur à) devient "<"
* ">" (supérieur à) devient ">"
Ca a un rapport avec la sécurité car évite que quelqu'un entre "<?php echo'machin'; ?>" et que ce texte doit être écris sur un fichier de ton serveur par exemple mais si tu le fais systématiquement :
1/ tu ralentis ton code avec une fonction inutile
2/ tu aura un prb si tu comparer ce type de valeurs if(htmlentities('vi<tore')=='vi<tore');
=> à utiliser donc mais seulement quant il y a besoin... (logique non ?)
* "&" (et commercial) devient "&"
* """ (guillemets doubles) devient """ lorsque ENT_NOQUOTES n'est pas utilisée.
* "'" (single quote) devient "'" uniquement lorsque ENT_QUOTES est utilisée.
* "<" (inférieur à) devient "<"
* ">" (supérieur à) devient ">"
Ca a un rapport avec la sécurité car évite que quelqu'un entre "<?php echo'machin'; ?>" et que ce texte doit être écris sur un fichier de ton serveur par exemple mais si tu le fais systématiquement :
1/ tu ralentis ton code avec une fonction inutile
2/ tu aura un prb si tu comparer ce type de valeurs if(htmlentities('vi<tore')=='vi<tore');
=> à utiliser donc mais seulement quant il y a besoin... (logique non ?)
12 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Google rachète Postini, spécialiste de la sécurité Internet
- Faille de sécurité dans la Google Toolbar
- Google ouvre un blog sur la sécurité informatique en ligne
- Google Developer Day 2007 : à Paris et dans 9 autres villes
- 1ère faille de sécurité découverte sur Google Chrome
- Les bonnes pratiques pour son site web : le memento
- Séminaire sur le référencement : ImiTiki - Online 2005
- Nouvelle faille qui touche de nombreux services de Google
- Référencement d'un forum phpBB
- Référencement : le problème des sessions des pages PHP
Consultez la description détaillée des produits ou services de Google suivants : Google Chrome
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités






le forum