Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/03/2006, 20h58   #1
Membre du Club
 
xavier ruhlmann
Inscription : novembre 2005
Messages : 48
Détails du profil
Informations personnelles :
Nom : xavier ruhlmann
Âge : 40

Informations forums :
Inscription : novembre 2005
Messages : 48
Points : 42
Points : 42
Envoyer un message via MSN à zave
Par défaut [Sécurité] Besoin d'eclaircirssement sur les sessions

Bonjour à tous

Je bosse en ce moment sur les sessions, j'ai écris ce petit script qui fonctionne

Je ne vous met que le principal


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
code sur le formulaire
 
?php
// démarrage de la session
session_start();
// teste si les champs ont bien été remplit
if (isset($_POST['login']) && $_POST['password'] !=""){
if($_POST['login']==admin && $_POST['password']==2345)
{
$_SESSION['pseudo']=$_POST['login'];
$_SESSION['password']=$_POST['password'];
header("location: 2345.php");
}
}
?>
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
code de la page 2345
 
<?php
// démarrage de la session
session_start();
// vérification si les variable de seesion existe
if (isset($_SESSION['pseudo']) && $_SESSION['password']){
echo 'vous êtes connecté sour le login : '.$_SESSION['pseudo'];
}
else{
echo 'vous n\'avez pas accés à cette zone';
}
?>
Ce code fonctionne, mais j'ai l'impression qu'il est incorrect voir imparfait, car il y a certaines zones d'ombre dans ma compréhension du sujet, j'ai lu la faq sur le sujet mais elle n'a pas répondu à mes interrogations

D'après ce que j'ai compris lorsqu'une session s'ouvre un cookies est stocké sur l'ordinateur client avec l'ID de la session, si je reprends mon site, admetons que le visiteurs refuse les cookies, mon script ne fonctionnera pas?

J'ai lu qu'il était possible de transmettre cette ID par l'url, il vaut mieux par précaution mettre l'identifiant de session à tous les liens faisant partis des pages protégés?

Dans le cas le la redirection du script, quelle serait la bonne syntaxe?

est ce que celle ci est correcte?
Code :
1
2
 
header("location: 2345.php?strip_tags(SID)");
Dernière questions

A votre avis que faudrait t'il pour que ce script soit plus correcte?

J'avoue que même si je trouve des informations sur le sujet, j'ai quand même besoin de certaine explications, voilà pourquoi je m'adresse à bien plus expert que moi.

Je suis persuadé qu'il est important de bien maîtriser les sessions car visiblement les possibilités offertent sont enormes

Merci à tout ceux qui prendront ma demande en considération
zave est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2006, 04h11   #2
Membre actif
 
Inscription : mai 2005
Messages : 147
Détails du profil
Informations personnelles :
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mai 2005
Messages : 147
Points : 164
Points : 164
Citation:
Envoyé par zave
D'après ce que j'ai compris lorsqu'une session s'ouvre un cookies est stocké sur l'ordinateur client avec l'ID de la session, si je reprends mon site, admetons que le visiteurs refuse les cookies, mon script ne fonctionnera pas?
c'est bien ça, php n'aura pas d'id de session donc ne pourra pas retrouvé les donnée (pour chaque session d'entamée php cré un fichier sess_idDeLaSession), mais tu peux aussi vérifier la présence des cookies.

Citation:
Envoyé par zave
J'ai lu qu'il était possible de transmettre cette ID par l'url, il vaut mieux par précaution mettre l'identifiant de session à tous les liens faisant partis des pages protégés?
c'est effectivement mieux de le mettre là ou tu en as besoin (les actions de tes form aussi) si tu passes par l'url.
je crois que php le fait tout seul (j'utilise les cookies alors je peux pas trop en dire).
regarde ici pour les configs (session.use_trans_sid et url_rewriter.tags par exemple) :
http://fr.php.net/manual/fr/ref.session.php

Citation:
Dans le cas le la redirection du script, quelle serait la bonne syntaxe?

est ce que celle ci est correcte?
header("location: 2345.php?strip_tags(SID)");
essaie

Citation:
Envoyé par zave
à votre avis que faudrait t'il pour que ce script soit plus correcte?
bah, c'est pas un script complet...

par contre je vois pas l'utilité de mettre le pass dans une session.
par défaut php stock les fichiers de session dans le répertoire tmp,en gros un répertoire accessible à tous, ce qui est souvent le cas dans un mutualisé (tu peux modifier grâce à cette directive : session.save_path).

pour info le contenu d'un fichier de session
Citation:
Envoyé par sess_sid
login|s:7:"mon log";password|s:8:"mon pass";
après tu peux aussi regénérer l'id de session pour éviter une fixation de session (tjs utile après un changement de pouvoir, et en plus ça mange pas de pain) :
http://fr.php.net/session_regenerate_id

+
tthierry est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2006, 11h20   #3
Membre du Club
 
xavier ruhlmann
Inscription : novembre 2005
Messages : 48
Détails du profil
Informations personnelles :
Nom : xavier ruhlmann
Âge : 40

Informations forums :
Inscription : novembre 2005
Messages : 48
Points : 42
Points : 42
Envoyer un message via MSN à zave
Merci tout d'abord tthierry, pour ton aide

Citation:
Envoyé par tthierry
c'est effectivement mieux de le mettre là ou tu en as besoin (les actions de tes form aussi) si tu passes par l'url.
je crois que php le fait tout seul (j'utilise les cookies alors je peux pas trop en dire).
J'ai regardé du coté de mon hébergeur, visiblement php a été compilé avec l'option --enable-trans-sid, doncs si j'ai bien compris l'ID de la session sera transmise automatiquement dans l'url

J'ai vu que j'ai un répertoire session, donc visiblement c'est une bonne chose, ça va me permettre d'examiner ces fichiers et surement de comprendre un peu plus peut être

Citation:
Envoyé par tthierry
Citation:

Dans le cas le la redirection du script, quelle serait la bonne syntaxe?

est ce que celle ci est correcte?
header("location: 2345.php?strip_tags(SID)");

essaie
C'est vrai que j'aurai pu essayé , je viens donc de le faire en local, surtout que l'option --enable-trans-sid n'y est pas activée et évidémment ça ne fonctionnne pas (je m'en doutais un peu à vrai dire )

En fait j'ai pas trouvé la syntaxe précise, du coups je m'étais "inspiré" de cette page

http://fr.php.net/manual/fr/ref.session.php

car j'avais trouvé ça

Citation:
Pour continuer, <a href="nextpage.php?<?php echo strip_tags(SID); ?>">cliquez ici</a>.
Malheureusement, j'ai pas trouvé d'autres infos me permettant de trouver la bonne syntaxe pour véhiculer l'ID de la session pour la redirection

Même si ce n'est visiblement plus utile vu que sur mon hébergement c'est automatique. Il faudrait que je connaisse la bonne syntaxe

Citation:
Envoyé par tthierry
après tu peux aussi regénérer l'id de session pour éviter une fixation de session (tjs utile après un changement de pouvoir, et en plus ça mange pas de pain) :
Ok merci du conseil, j'ai lu le lien et j'ai compris l'intérêt, je me demandais si il fallait regénérer la session sur chaque page d'un espace membre, enfin comment utiliser cette régénération de façon optimale?

Ma question est peut être un peu bète, mais vu je me la pose, je vous la pose

Merci pour les eclaircissement en tout cas
zave est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2006, 12h36   #4
Membre actif
 
Inscription : mai 2005
Messages : 147
Détails du profil
Informations personnelles :
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mai 2005
Messages : 147
Points : 164
Points : 164
Citation:
Envoyé par zave
visiblement php a été compilé avec l'option --enable-trans-sid, doncs si j'ai bien compris l'ID de la session sera transmise automatiquement dans l'url
seulement si tu as la bonne config dans le php.ini, les options de compilation servent juste à activer ou désactiver des fonctionnalités.
ce sont les directives du php.ini, modifiables avec ini_set() ou php_value (.htaccess) si impossible d'accéder au fichier ini, qui contrôlent le comportement de php...bon allez j'arrête de chipoter

Citation:
Envoyé par zave
En fait j'ai pas trouvé la syntaxe précise
ici t'as dû voir qu'ils en savent plus que moi :

http://www.developpez.net/forums/viewtopic.php?t=472279

Citation:
Envoyé par zave
je me demandais si il fallait regénérer la session sur chaque page d'un espace membre, enfin comment utiliser cette régénération de façon optimale?
pas forcément, c'est surtout à chaque modification du niveau de pouvoir que c'est important.

sur les fixations (mais tu verras qu'il y a d'autres manips avec les sessions) :

http://phpsec.org/projects/guide/fr/4.html
http://shiflett.org/articles/security-corner-feb2004

sur l'ajout d'un paramètre optionnel à session_regenerate_id() depuis la v 5.1 :
http://ilia.ws/archives/47-session_regenerate_id-Improvement.html

+
tthierry est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2006, 21h22   #5
Membre du Club
 
xavier ruhlmann
Inscription : novembre 2005
Messages : 48
Détails du profil
Informations personnelles :
Nom : xavier ruhlmann
Âge : 40

Informations forums :
Inscription : novembre 2005
Messages : 48
Points : 42
Points : 42
Envoyer un message via MSN à zave
Merci tthierry pour toutes ces précisions, tout ça commence à devenir plus clair

Les liens que tu m'as passé concernant les problèmes de sécurité au niveau des sessions sont très intéréssant, je ne connaissais pas les risques éventuelles

Je ne savais pas non plus que l'on pouvait modifier certains paramètres de php.ini pendant l'exécution d'un script, sympa de me l'avoir fait découvrir. N'ayant pas accès à php.ini c'est bien de savoir ça

Mon hébergement actuel met l'identifiant de session automatiquement dans l'url, si je change d'hébergeur un jour, je ferai attention à ça, ainsi qu'a la possibilité d'accéder directement à php.ini
Citation:
Envoyé par tthierry
ici t'as dû voir qu'ils en savent plus que moi :

http://www.developpez.net/forums/viewtopic.php?t=472279
Tu en sais déjà plus que moi en tout cas

Visiblement je suis pas le seul à me demander comment faire, je vais donc suivre la suite de ce post avec intérèt car pour l'instant c'est pas très clair pour moi

encore une fois merci pour ton aide 8)
zave est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h37.


 
 
 
 
Partenaires

Hébergement Web