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 13/05/2006, 16h48   #1
Futur Membre du Club
 
Inscription : décembre 2005
Messages : 188
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 188
Points : 18
Points : 18
Par défaut [Sécurité] mettre les variables du formulaire en une fois dans une session

Bonjour,

j'ai une question, j'ai un formulaire avec pas mal de variable, j'aimerai bien mettre tout dans une session en une fois, et pas faire chaque fois

$_SESSION['nomva']=$_POST['nomva'];

est ce qu'il est possible de mettre tt dans une session en une fois, et par la suite les extraires, si oui, comment??

merci
Alain15 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2006, 17h49   #2
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
hum, soit la question est très simple, soit je n'ai rien compris à ta question.

Si c'est très simple, il suffit de faire :

Code :
1
2
3
4
5
 
$_SESSION['nomva1']=$_POST['nomva1'];
$_SESSION['nomva2']=$_POST['nomva2'];
$_SESSION['nomva3']=$_POST['nomva3'];
$_SESSION['nomva4']=$_POST['nomva4'];
Tu crées une variable de session pour chaque champ de formulaire qui porte un attribut "name" différent.

Ou alors y'a des histoires de tableau aussi je crois, mais là je ne les ai jamais utilisé. En tout cas je ne vois pas comment tu pourrais faire tenir plusieur variables issues de différents champs de formulaire dans une seule et même variable de session (si ce n'est peut être les tableaux, encore une fois).
__________________
C'est pas parce que j'ai tort que vous avez raison.
psychoBob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2006, 17h51   #3
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
encore plus simple :
Code :
$_SESSION['_post_data'] = $_POST;
si tu veux vraiment mettre toutes les valeurs de $_POST directement dans $_SESSION (ATTENTION SECURITE !) :
Code :
foreach($_POST as $k => $v) $_SESSION[$k] = $v;
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 09h29   #4
Membre confirmé
 
Avatar de ShinJava
 
Inscription : septembre 2004
Messages : 411
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 411
Points : 287
Points : 287
Citation:
Envoyé par Swoög
si tu veux vraiment mettre toutes les valeurs de $_POST directement dans $_SESSION (ATTENTION SECURITE !) :
Salut,
A quoi fais-tu allusion pour la securité ?

Merci

++
ShinJava
__________________
Petit débutant deviendra grand... débutant
ShinJava est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 09h37   #5
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
ok, mettons tu utilises les sessions pour identifier tes membres

supposons que l'id de membre 1 est l'id de l'admin (c'est très facile à retrouver sur un site en général ^^)

maintenant, quelqu'un envoie une requête telle que extrêmement facile à faire, exemple de requête HTTP le permettant :
Code :
1
2
3
4
5
POST /page_de_traitement.php?SID=MONSID HTTP/1.1
Host: www.lesite.com
User-agent: MON_USER_AGENT
 
id=1
et là déjà j'ai supposé que tes sessions étaient un peu sécurisées (vérification du User-agent), il suffit d'avoir telnet pour pouvoir faire cela...

quand tu feras le foreach, $_SESSION['id'] passera à 1 et la prochaine fois que les accès seront vérifiés pour cet utilisateur, il acquiererat automatiquement les droits admin sur ton site... Super sympa hein
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 10h03   #6
Membre confirmé
 
Avatar de ShinJava
 
Inscription : septembre 2004
Messages : 411
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 411
Points : 287
Points : 287
Houla,
Je t'avouerais que je suis un peu perdu là. Je pensais que la faiblesse des FORM était surtout dû à la méthode GET.

Et effectivement j'utilise bien les session pour identifier un membre.
Je compare le pseudo + mot de passe à la BDD : si c'est ok je verifie sur chaque page de son compte si $_SESSION['AuthF'] est à 1 et $_SESSION['Pseudo'] est vrai. Je vois vraiment pas comment je pourrais faire autrement.

Citation:
POST /page_de_traitement.php?SID=MONSID HTTP/1.1
Host: www.lesite.com
User-agent: MON_USER_AGENT

id=1
Alors la je comprend pas trop, ce n'est pas un GET la premiere ligne ?
Je n'avais jamais entendu parler de securisation de $_SESSION par User-agent (va falloir que j'entame des recherche ^^)

Merci d'avance

++
ShinJava
__________________
Petit débutant deviendra grand... débutant
ShinJava est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 10h27   #7
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
là, je parlais d'un formulaire classique, hors identification, un formulaire en POST est plus sécurisé qu'un formulaire en GET, vis-à-vis d'un néophyte en tous cas...

considère simplement que TOUT ce qui vient du client est potentiellement corrompu...

ensuite, ça dépend comment tu gères l'identification...

Ce que je voulais dire, c'est que c'est dangereux de stocker n'importe quoi dans les sessions (avec le foreach, c'est ce qu'il se passe), c'est pas pareil pour les données pré-vérifiées (cas de l'identification).

pour la protection par User-agent, il s'agit juste de stocker le user_agent ($_SERVER['HTTP_USER_AGENT']) dans la session à la première connection, puis de le vérifier sur chaque page, s'il change, on vire la session... ça évite en partie les vols de sessions... le User-agent c'est la signature du navigateur en fait...
on peut faire pareil avec l'ip ($_SERVER['REMOTE_ADDR']) bien sûr aucun moyen n'est totalement sûr, il est possible plus ou moins facilement de falsifier son User-agent et son IP, et puis il est aussi possible que le client change d'IP en naviguant sur le site...

sinon, si tu soumets ton formulaire en POST, la requête HTTP est bonne

on peut sans problème intégrer des variables d'URL dans une requête POST... parce que ça fait partie du nom de la page à charger ^^ (suffit de lire une petite RFC du protocole HTTP pour t'en convaincre )
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 13h36   #8
Membre confirmé
 
Avatar de ShinJava
 
Inscription : septembre 2004
Messages : 411
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 411
Points : 287
Points : 287
D'accord je comprend mieux.
Merci pour cette explication, j'ai apris pas mal de chose

Merci encore et bonne journée

++
ShinJava
__________________
Petit débutant deviendra grand... débutant
ShinJava est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web