PHP Filter unserialize ()
PHP 7 meningkat mungkin unserialize () menyediakan fitur penyaringan, dapat mencegah data kode injeksi ilegal, memberikan data deserialize lebih aman.
contoh
contoh
<? Php
class myclass1 {
publik $ obj1prop;
}
class MyClass2 {
publik $ obj2prop;
}
$ Obj1 = baru myclass1 ();
$ Obj1 -> obj1prop = 1;
$ Obj2 = baru MyClass2 ();
$ Obj2 -> obj2prop = 2;
$ SerializedObj1 = cerita bersambung ($ obj1) ;
$ SerializedObj2 = cerita bersambung ($ obj2) ;
// Perilaku default adalah untuk menerima semua kelas
// Parameter kedua bisa diabaikan
// Jika allowed_classes diatur ke false, unserialize semua benda akan dikonversi ke objek __PHP_Incomplete_Class
$ Data = unserialize ($ serializedObj1, [ "allowed_classes" => true]);
// Mengkonversi semua objek ke objek __PHP_Incomplete_Class, selain myclass1 dan MyClass2
$ Data2 = unserialize ($ serializedObj2, [ "allowed_classes" => [ "myclass1", "MyClass2"]]);
print ($ data -> obj1prop) ;
print (PHP_EOL);
print ($ data2 -> obj2prop) ;
?>
class myclass1 {
publik $ obj1prop;
}
class MyClass2 {
publik $ obj2prop;
}
$ Obj1 = baru myclass1 ();
$ Obj1 -> obj1prop = 1;
$ Obj2 = baru MyClass2 ();
$ Obj2 -> obj2prop = 2;
$ SerializedObj1 = cerita bersambung ($ obj1) ;
$ SerializedObj2 = cerita bersambung ($ obj2) ;
// Perilaku default adalah untuk menerima semua kelas
// Parameter kedua bisa diabaikan
// Jika allowed_classes diatur ke false, unserialize semua benda akan dikonversi ke objek __PHP_Incomplete_Class
$ Data = unserialize ($ serializedObj1, [ "allowed_classes" => true]);
// Mengkonversi semua objek ke objek __PHP_Incomplete_Class, selain myclass1 dan MyClass2
$ Data2 = unserialize ($ serializedObj2, [ "allowed_classes" => [ "myclass1", "MyClass2"]]);
print ($ data -> obj1prop) ;
print (PHP_EOL);
print ($ data2 -> obj2prop) ;
?>
Output di atas eksekusi program adalah:
1 2