filtre PHP unserialize ()
PHP 7 nouvelles fonctionnalités
PHP 7 augmente peut unserialize () fournit des fonctionnalités de filtrage, il peut empêcher l'injection de code illégal de données, fournit des données délinéariser plus sûres.
Exemples
Exemples
<? Php
classe MyClass1 {
publique obj1prop $;
}
classe MaClasse2 {
publique obj2prop $;
}
obj1 $ = new MyClass1 ();
$ Obj1 -> obj1prop = 1;
obj2 $ = new MaClasse2 ();
$ Obj2 -> obj2prop = 2;
$ SerializedObj1 = serialize (obj1 $) ;
$ SerializedObj2 = serialize (obj2 $) ;
// Le comportement par défaut est de recevoir toutes les classes
// Le second paramètre peut être ignoré
// Si allowed_classes valeur false, unserialize tous les objets seront convertis en un objet __PHP_Incomplete_Class
$ Data = unserialize ($ serializedObj1, [ "allowed_classes" => true]);
// Convertir tous les objets à des objets __PHP_Incomplete_Class, en plus de MyClass1 et MaClasse2
$ Données2 = unserialize ($ serializedObj2, [ "allowed_classes" => [ "MyClass1", "MaClasse2"]]);
print ($ data -> obj1prop) ;
print (PHP_EOL);
print ($ données2 -> obj2prop) ;
?>
classe MyClass1 {
publique obj1prop $;
}
classe MaClasse2 {
publique obj2prop $;
}
obj1 $ = new MyClass1 ();
$ Obj1 -> obj1prop = 1;
obj2 $ = new MaClasse2 ();
$ Obj2 -> obj2prop = 2;
$ SerializedObj1 = serialize (obj1 $) ;
$ SerializedObj2 = serialize (obj2 $) ;
// Le comportement par défaut est de recevoir toutes les classes
// Le second paramètre peut être ignoré
// Si allowed_classes valeur false, unserialize tous les objets seront convertis en un objet __PHP_Incomplete_Class
$ Data = unserialize ($ serializedObj1, [ "allowed_classes" => true]);
// Convertir tous les objets à des objets __PHP_Incomplete_Class, en plus de MyClass1 et MaClasse2
$ Données2 = unserialize ($ serializedObj2, [ "allowed_classes" => [ "MyClass1", "MaClasse2"]]);
print ($ data -> obj1prop) ;
print (PHP_EOL);
print ($ données2 -> obj2prop) ;
?>
La sortie de l'exécution du programme ci-dessus est la suivante:
1 2