Sécuriser objet dans session

Eléphanteau du PHP | 45 Messages

01 nov. 2007, 13:32

Bonjour @ tous,

Je souhaitais savoir s'il étais possible de sauvegarder un objet dans une session en protégeant (via private ou protected) l'accès aux propriétés de l'objet. Effectivement, lorsque j'affiche un var_dump($_SESSION), je vois la valeur des propriétés de mon objet, ce que j'aimerais éviter...

exemple de ce que me retourne un var_dump($_SESSION) :
array(9) { ["admin"]=>  string(2) "ok" ["lang"]=>  string(2) "fr" ["host:private"]=>  string(9) "localhost"}

Eléphanteau du PHP | 45 Messages

02 nov. 2007, 18:08

Il n'y as pas de solution ? vraiment ?

ViPHP
ViPHP | 2287 Messages

02 nov. 2007, 19:38

Il n'y as pas de solution ? vraiment ?
La solution est de ne pas utiliser var_dump() comme cela. Var_dump sert au déboguage et a donc tendance à en montrer plutot trop que pas assez.

utilise plutot get_object_vars() à la place. http://fr2.php.net/get_object_vars
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Eléphanteau du PHP | 45 Messages

04 nov. 2007, 16:17

euh...je ne compte pas récupérr ces variables...je souhaite simplement savoir s'il y'a un moyen d'empêcher qu'elles s'affchent lors de l'éxécution d'un var_dump. Ma question est la suivante en fin de compte : Est - il possible qu'une personne mal intentionnée puisse accéder aux informations de la session qui lui a été attribuée ?

ViPHP
ViPHP | 5924 Messages

05 nov. 2007, 02:11

Dans la mesure où les données de session ne sont accessibles que par toi, si tu ne donnes pas tes identifiants de ftp ou d'administrateur au premier venu, je ne vois pas pourquoi on pourrait accéder aux données de session.
A moins que tu fasses un var_dump() sur toutes tes pages, mais dans la mesure où ce n'est pas fait pour, j'en doute…

ViPHP
AB
ViPHP | 5818 Messages

05 nov. 2007, 02:26

Ou sinon il faudrait une grosse faille de sécurité dans ton script.

Eléphanteau du PHP | 45 Messages

05 nov. 2007, 15:22

Pourrais-tu me citer des exemples de failles dans des scripts php ?

Eléphanteau du PHP | 45 Messages

07 nov. 2007, 01:26

Personne n'a d'idée à ce sujet ?

ViPHP
AB
ViPHP | 5818 Messages

07 nov. 2007, 02:44

Bonsoir,

Cela pourrait être l'appel à des pages à l'aide de variables externes non vérifiées + include() , ou de tout ce que pourrait envoyer l'utilisateur via des formulaires et qui ne serait pas vérifié ou protégé à l'affichage par exemple...

Eléphanteau du PHP | 45 Messages

07 nov. 2007, 16:52

Est ce que ce genre de protection lors de l'insertion de variables postées via formulaire dans mes requêtes SQL est elle suffisante pour protégé mes scripts contres des attaques malveillantes ?
public function quote_smart($value){
	   // Stripslashes
	   if (get_magic_quotes_gpc()) {
		  $value = stripslashes($value);
	   }
	   // Protection si ce n'est pas un entier
	   if (!is_numeric($value)) {
		  $value = "'" . mysql_real_escape_string($value) . "'";
	   }
	   return $value;
}
[/php]

ViPHP
AB
ViPHP | 5818 Messages

07 nov. 2007, 19:46

Oui mais j'ai l'habitude d'utiliser toujours mysql_real_escape_string() même pour des valeurs numériques (normalement ça gène pas).
public function quote_smart($value){
	   // Stripslashes
	   if (get_magic_quotes_gpc()) { $value = stripslashes($value); }

	   // Protection si ce n'est pas un entier
	   $value = !is_numeric($value)? "'" . mysql_real_escape_string($value) . "'" : mysql_real_escape_string($value);

	   return $value;
}
Mais cela ne te dispenses pas de faire un echo htmlentities(row['champ']) pour l'affichage des données

Eléphanteau du PHP | 45 Messages

07 nov. 2007, 21:39

Merci pour vos réponses :!: