Sécurité de transmission par $_SESSION
Posté : 04 févr. 2011, 15:57
Bonjour,
Suite à un précédent post, une recommandation m'était faite de transmettre les variables par la superglobale $_SESSION, mais celle-ci peut être modifiée facilement dans l'url.
Bon ce n'est sûrement pas un scoop pour certains d'entre vous.
Demo :
issu de CÉCILE ODERO et MAGALI CONTENSIN (PHP Solutions)
Dans page1.php
session_start();
// recuperer le parametre passé dans l'URL
$nb = isset($_GET['nb']) ? (int)$_GET['nb'] : 0;
// stocker les donnees dans des variables de session
$_SESSION['quantite'] = $nb;
$_SESSION['ref'] = 'A-06-18';
Dans page2.php
session_start();
// afficher les variables de session
foreach ($_SESSION as $cle=>$valeur) {
echo "Variable de session $cle, contenu = $valeur<br>";
}
Si le script page1.php est modifié dans l'url :
?nb=12
Cela affecte le contenu de la variable quantite.
Ce n'est pas beaucoup plus sûr que de transmettre par $_GET.
Comment y remédier alors ?
Cordialement
Jacques.
Suite à un précédent post, une recommandation m'était faite de transmettre les variables par la superglobale $_SESSION, mais celle-ci peut être modifiée facilement dans l'url.
Bon ce n'est sûrement pas un scoop pour certains d'entre vous.
Demo :
issu de CÉCILE ODERO et MAGALI CONTENSIN (PHP Solutions)
Dans page1.php
session_start();
// recuperer le parametre passé dans l'URL
$nb = isset($_GET['nb']) ? (int)$_GET['nb'] : 0;
// stocker les donnees dans des variables de session
$_SESSION['quantite'] = $nb;
$_SESSION['ref'] = 'A-06-18';
Dans page2.php
session_start();
// afficher les variables de session
foreach ($_SESSION as $cle=>$valeur) {
echo "Variable de session $cle, contenu = $valeur<br>";
}
Si le script page1.php est modifié dans l'url :
?nb=12
Cela affecte le contenu de la variable quantite.
Ce n'est pas beaucoup plus sûr que de transmettre par $_GET.
Comment y remédier alors ?
Cordialement
Jacques.