PHP фильтр десериализации ()
PHP 7 увеличивается может десериализируются () предоставляет функции фильтрации, это может предотвратить незаконное инъекции кода данных, обеспечивает более безопасные данные десериализации.
примеров
примеров
<? PHP
Класс MyClass1 {
общественность $ obj1prop;
}
Класс MyClass2 {
общественность $ obj2prop;
}
$ Obj1 = новый MyClass1 ();
$ Obj1 -> obj1prop = 1;
$ Obj2 = новый MyClass2 ();
$ Obj2 -> obj2prop = 2;
$ SerializedObj1 = сериализации ($ obj1) ;
$ SerializedObj2 = сериализации ($ obj2) ;
// По умолчанию поведение , чтобы получить все классы
// Второй параметр может быть проигнорирован
// Если allowed_classes значение ЛОЖЬ, десериализируются все объекты будут преобразованы в объект __PHP_Incomplete_Class
$ Данных = десериализируются ($ serializedObj1, [ "allowed_classes" => верно]);
// Преобразовать все объекты к объектам __PHP_Incomplete_Class, в дополнение к MyClass1 и MyClass2
$ Data2 = десериализации ($ serializedObj2, [ "allowed_classes" => [ "MyClass1", "MyClass2"]]);
печать ($ данных -> obj1prop) ;
печать (PHP_EOL);
печать ($ data2 -> obj2prop) ;
?>
Класс MyClass1 {
общественность $ obj1prop;
}
Класс MyClass2 {
общественность $ obj2prop;
}
$ Obj1 = новый MyClass1 ();
$ Obj1 -> obj1prop = 1;
$ Obj2 = новый MyClass2 ();
$ Obj2 -> obj2prop = 2;
$ SerializedObj1 = сериализации ($ obj1) ;
$ SerializedObj2 = сериализации ($ obj2) ;
// По умолчанию поведение , чтобы получить все классы
// Второй параметр может быть проигнорирован
// Если allowed_classes значение ЛОЖЬ, десериализируются все объекты будут преобразованы в объект __PHP_Incomplete_Class
$ Данных = десериализируются ($ serializedObj1, [ "allowed_classes" => верно]);
// Преобразовать все объекты к объектам __PHP_Incomplete_Class, в дополнение к MyClass1 и MyClass2
$ Data2 = десериализации ($ serializedObj2, [ "allowed_classes" => [ "MyClass1", "MyClass2"]]);
печать ($ данных -> obj1prop) ;
печать (PHP_EOL);
печать ($ data2 -> obj2prop) ;
?>
Выход выше выполнение программы:
1 2