PHP Filter unserialize ()
PHP 7 erhöht kann () bietet Filterfunktionen unserialize, es illegal Daten Code-Injektion verhindern kann, ist ein sichereres deserialize Daten.
Beispiele
Beispiele
<? Php
Klasse MyClass1 {
public $ obj1prop;
}
Klasse MyClass2 {
public $ obj2prop;
}
$ Obj1 = new MyClass1 ();
$ Obj1 -> obj1prop = 1;
$ Obj2 = new MyClass2 ();
$ Obj2 -> obj2prop = 2;
$ SerializedObj1 = serialize ($ obj1) ;
$ SerializedObj2 = serialize ($ obj2) ;
// Standardverhalten ist , alle Klassen zu erhalten
// Der zweite Parameter kann ignoriert werden
// Wenn allowed_classes auf false gesetzt, unserialize alle Objekte werden in ein Objekt umgewandelt werden __PHP_Incomplete_Class
$ Data = unserialize ($ serializedObj1, [ "allowed_classes" => true]);
Konvertieren // alle Objekte __PHP_Incomplete_Class Objekte, zusätzlich zu MyClass1 und MyClass2
$ Daten2 = unserialize ($ serializedObj2, [ "allowed_classes" => [ "MyClass1", "MyClass2"]]);
print ($ data -> obj1prop) ;
print (PHP_EOL);
print ($ Daten2 -> obj2prop) ;
?>
Klasse MyClass1 {
public $ obj1prop;
}
Klasse MyClass2 {
public $ obj2prop;
}
$ Obj1 = new MyClass1 ();
$ Obj1 -> obj1prop = 1;
$ Obj2 = new MyClass2 ();
$ Obj2 -> obj2prop = 2;
$ SerializedObj1 = serialize ($ obj1) ;
$ SerializedObj2 = serialize ($ obj2) ;
// Standardverhalten ist , alle Klassen zu erhalten
// Der zweite Parameter kann ignoriert werden
// Wenn allowed_classes auf false gesetzt, unserialize alle Objekte werden in ein Objekt umgewandelt werden __PHP_Incomplete_Class
$ Data = unserialize ($ serializedObj1, [ "allowed_classes" => true]);
Konvertieren // alle Objekte __PHP_Incomplete_Class Objekte, zusätzlich zu MyClass1 und MyClass2
$ Daten2 = unserialize ($ serializedObj2, [ "allowed_classes" => [ "MyClass1", "MyClass2"]]);
print ($ data -> obj1prop) ;
print (PHP_EOL);
print ($ Daten2 -> obj2prop) ;
?>
Die obige Programmausführung Ausgabe ist:
1 2