Espace membre, sessions et sécurisation en PHP
20 messages
• Page 1 sur 2 • 1, 2
-

milkiway - WRInaute accro

- Messages: 4910
- Inscription: 3 Fév 2004
Espace membre, sessions et sécurisation en PHP
Bonjour,
J'ai créé mon premier espace membre à la main comme un grand.
J'ai surement du laisser des trous de partout.
Auriez vous des tutos ou recommandations pour sécuriser un espace membre ?
Notamment : quelle est votre fonction/routine pour vérifier que l'utilisateur est bien connecté (et qu'il n'a pas usurpé une identité) ? Quelles sont les vérifications à faire ?
Merci à tout ceux qui auront pris le temps de lire ce message.
J'ai créé mon premier espace membre à la main comme un grand.
J'ai surement du laisser des trous de partout.
Auriez vous des tutos ou recommandations pour sécuriser un espace membre ?
Notamment : quelle est votre fonction/routine pour vérifier que l'utilisateur est bien connecté (et qu'il n'a pas usurpé une identité) ? Quelles sont les vérifications à faire ?
Merci à tout ceux qui auront pris le temps de lire ce message.
- mahdivitchee
- WRInaute discret

- Messages: 175
- Inscription: 22 Mar 2010
Re: Espace membre, sessions et sécurisation en PHP
Bonjour
1er pas :
dans la 1er page tu vérifie est ce le login existe , si oui vérifie le mot de passe ; si correspondant à login tu crée un session avec le nom ou l'id de ce utilisateur
exemple détaillés içi : http://www.phpdebutant.org/article69.php
2éme pas :
dans les autres pages tu vérifie est ce que le session qui tu as crée n'existe pas, si oui tu rediriger la page vers la page d'index avec une message d'erreur
exemple : ( ce code doit dans le tête de page ) ( 'pseudo' est nom de session )
lire aussi ce topic : http://www.siteduzero.com/tutoriel-3-14563-variables-superglobales-ses ... okies.html
bonne journée
1er pas :
dans la 1er page tu vérifie est ce le login existe , si oui vérifie le mot de passe ; si correspondant à login tu crée un session avec le nom ou l'id de ce utilisateur
exemple détaillés içi : http://www.phpdebutant.org/article69.php
2éme pas :
dans les autres pages tu vérifie est ce que le session qui tu as crée n'existe pas, si oui tu rediriger la page vers la page d'index avec une message d'erreur
exemple : ( ce code doit dans le tête de page ) ( 'pseudo' est nom de session )
- Code: Tout sélectionner
<?php
session_start();
error_reporting(E_ALL ^ E_NOTICE);
if(!session_is_registered("pseudo")){
header("Location: accueil.php?pass=err");
}
?>
lire aussi ce topic : http://www.siteduzero.com/tutoriel-3-14563-variables-superglobales-ses ... okies.html
bonne journée
-

milkiway - WRInaute accro

- Messages: 4910
- Inscription: 3 Fév 2004
Re: Espace membre, sessions et sécurisation en PHP
Merci j'ai du mal m'exprimer.
J'ai déjà codé l'espace et je me contente de vérifier les sessions de la même manière que tu le proposes mais ça me semble beaucoup trop léger.
Il me paraît un peu facile de bidouiller les sessions pour se faire passer pour un membre, non ?
De plus, jee n'ai pas de protection contre un bot qui ferait volontairement planter le serveur avec des requêtes en masse sur le formulaire d'inscription.
J'ai déjà codé l'espace et je me contente de vérifier les sessions de la même manière que tu le proposes mais ça me semble beaucoup trop léger.
Il me paraît un peu facile de bidouiller les sessions pour se faire passer pour un membre, non ?
De plus, jee n'ai pas de protection contre un bot qui ferait volontairement planter le serveur avec des requêtes en masse sur le formulaire d'inscription.
-

spout - WRInaute accro

- Messages: 4378
- Inscription: 14 Mai 2003
Re: Espace membre, sessions et sécurisation en PHP
milkiway a écrit:Notamment : quelle est votre fonction/routine pour vérifier que l'utilisateur est bien connecté (et qu'il n'a pas usurpé une identité) ? Quelles sont les vérifications à faire ?
Avec un "fingerprint": http://shiflett.org/articles/the-truth-about-sessions
-

spout - WRInaute accro

- Messages: 4378
- Inscription: 14 Mai 2003
Re: Espace membre, sessions et sécurisation en PHP
On ne connait pas ton code de login / sessions:
1) Code commun à toutes les pages avec identification:
2) Au login correct, tu enregistres ce $fingerprint en session:
3) Pour vérifier l'usurpation de session, sur toutes les pages où tu dois vérifier la session:
Edit: sinon il y a PEAR::Auth:
http://pear.php.net/manual/en/package.authentication.auth.intro.php
http://pear.php.net/manual/en/package.authentication.auth.auth.setadva ... curity.php
1) Code commun à toutes les pages avec identification:
- Code: Tout sélectionner
<?php
$fingerprint = 'MySecretFingerPrintingKeyHoooohooo'.$_SERVER['HTTP_USER_AGENT'].$_SERVER['HTTP_ACCEPT_CHARSET'];
$fingerprint = md5($fingerprint.session_id());
?>
2) Au login correct, tu enregistres ce $fingerprint en session:
- Code: Tout sélectionner
<?php
$_SESSION['fingerprint'] = $fingerprint;
?>
3) Pour vérifier l'usurpation de session, sur toutes les pages où tu dois vérifier la session:
- Code: Tout sélectionner
<?php
if($_SESSION['fingerprint'] != $fingerprint){
//logout forcé
}
?>
Edit: sinon il y a PEAR::Auth:
http://pear.php.net/manual/en/package.authentication.auth.intro.php
http://pear.php.net/manual/en/package.authentication.auth.auth.setadva ... curity.php
Dernière édition par spout le Jeu Aoû 12, 2010 14:30, édité 1 fois.
-

milkiway - WRInaute accro

- Messages: 4910
- Inscription: 3 Fév 2004
Re: Espace membre, sessions et sécurisation en PHP
Par contre, une fois le membre connecté et vérifié, lors de la génération des pages, quelles variables utiliser ? Par exemple si je veux faire sa page de profil, puis je sans crainte procéder comme ceci :
Càd en faisant confiance aux sessions et en stockant les infos dedans ?
Ou alors je fais une requete pour aller chercher dans la base l'info depuis l'id du membre ?
Merci
- Code: Tout sélectionner
<h1>Profil de <?php echo $_SESSION['login']) ?></h1>
Càd en faisant confiance aux sessions et en stockant les infos dedans ?
Ou alors je fais une requete pour aller chercher dans la base l'info depuis l'id du membre ?
Merci
- Robinson
- WRInaute passionné

- Messages: 2233
- Inscription: 25 Oct 2005
Re: Espace membre, sessions et sécurisation en PHP
Tu peux y stocker quelques infos de base, mais n'abuse pas trop, c'est stocké dans des fichiers il me semble.
Le plus simple reste d'y stocker l'identifiant, pseudo et mot de passe que tu peux vérifier avec la base de données sur quelques pages clés.
Il faut trouver un compromis pour économiser quelques requêtes.
Le plus simple reste d'y stocker l'identifiant, pseudo et mot de passe que tu peux vérifier avec la base de données sur quelques pages clés.
Il faut trouver un compromis pour économiser quelques requêtes.
-

ortolojf - WRInaute passionné

- Messages: 1666
- Inscription: 14 Aoû 2002
Re: Espace membre, sessions et sécurisation en PHP
Bonsoir
Je ne savais pas qu'il était possible de simuler une session, c'est-à-dire connaître la valeur et le nom de la variable de session.
Comment peut-on faire semblant d'avoir une session correcte, avec une variable de session forgée ?
Merci beaucoup de vos réponses.
Jean-François Ortolo
Je ne savais pas qu'il était possible de simuler une session, c'est-à-dire connaître la valeur et le nom de la variable de session.
Comment peut-on faire semblant d'avoir une session correcte, avec une variable de session forgée ?
Merci beaucoup de vos réponses.
Jean-François Ortolo
- Robinson
- WRInaute passionné

- Messages: 2233
- Inscription: 25 Oct 2005
Re: Espace membre, sessions et sécurisation en PHP
Simuler, non, par contre s'il y a une faille sur le site (injection de code), le hacker peut récupérer l'id de la session des personnes tombant sur ce code, il peut ainsi se faire passer pour eux. (d'où l'intérêt du "fingerprint", une empreinte de ton ordinateur avec quasi aucune chance de retrouver la même chez le hacker)
-

ortolojf - WRInaute passionné

- Messages: 1666
- Inscription: 14 Aoû 2002
Re: Espace membre, sessions et sécurisation en PHP
Robinson a écrit:Simuler, non, par contre s'il y a une faille sur le site (injection de code), le hacker peut récupérer l'id de la session des personnes tombant sur ce code, il peut ainsi se faire passer pour eux. (d'où l'intérêt du "fingerprint", une empreinte de ton ordinateur avec quasi aucune chance de retrouver la même chez le hacker)
Bonsoir Robinson
Bon, mais à supposer que quelqu'un ait le nom et la valeur de l'identificateur de session d'une autre personne, et que cet identificateur de session suffise à authentifier la personne...
Cet identificateur de session, doit bien être contenu dans une variable de session ( par exemple $_SESSION['id'] ) au moment où le hacker parcourt le site ?
Alors, comment le hacker va-t-il alimenter cette variable de session, vu qu'il n'a aucune action possible sur les variables de session durant le parcours de ce site, vu que la session n'est valable que pour ce site ?
Merci beaucoup de vos réponses.
Amicalement.
Jean-François Ortolo
-

spout - WRInaute accro

- Messages: 4378
- Inscription: 14 Mai 2003
Re: Espace membre, sessions et sécurisation en PHP
ortolojf a écrit:Alors, comment le hacker va-t-il alimenter cette variable de session, vu qu'il n'a aucune action possible sur les variables de session durant le parcours de ce site, vu que la session n'est valable que pour ce site ?
Regarde le lien que j'ai cité plus haut, c'est expliqué.
En bref, on peut voler une session avec le paramètre PHPSESSID en _GET ou en cookie.
- Robinson
- WRInaute passionné

- Messages: 2233
- Inscription: 25 Oct 2005
Re: Espace membre, sessions et sécurisation en PHP
spout, 5 ans déjà que tu nous donnes des cours sur le fingerprint ^^
http://forum.webrankinfo.com/concours-comptabilisation-clic-t39531.html#p380221
http://forum.webrankinfo.com/concours-comptabilisation-clic-t39531.html#p380221
20 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
- Créer un espace membre : sessions et url rewritting
- Besoin d'avis pour un espace membre PHP/MySQL
- Espace membre PHP : stockage mot de passe et email, cryptage?
- Quel est le meilleur script php pour un espace membre?
- Espace membre
- script espace membre
- Référencer un espace membre
- Espace membre privé joomla
- Solution pour un espace membre
- Adsense dans espace membre
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
