PHP 7 — функция unserialize() с фильтрацией

PHP 7 — функция unserialize() с фильтрацией

От автора: Функция PHP unserialize() с фильтрацией была введена в седьмой версии, чтобы обеспечить безопасность данных при конвертации сериализованного объекта с ненадежными данными. Это предотвращает возможные инъекции в код и позволяет заносить классы в белые списки, которые могут быть преобразованы обратно в PHP.

Пример

<?php
  class MyClass1 { 
 public $obj1prop; 
  }
  class MyClass2 {
 public $obj2prop;
  }
 
  $obj1 = new MyClass1();
  $obj1->obj1prop = 1;
  $obj2 = new MyClass2();
  $obj2->obj2prop = 2;
 
  $serializedObj1 = serialize($obj1);
  $serializedObj2 = serialize($obj2);
 
  // поведение по умолчанию, при котором принимаются все классы
  // второй аргумент может быть опущен.
  // если следующие классы были переданы как ложные, unserialize преобразует все обьекты в объект  __PHP_Incomplete_Class
  $data = unserialize($serializedObj1 , ["allowed_classes" => true]);
 
  // преобразует все объекты, кроме  MyClass1 и  MyClass2, в объект __PHP_Incomplete_Class 
  $data2 = unserialize($serializedObj2 , ["allowed_classes" => ["MyClass1", "MyClass2"]]);
 
  print($data->obj1prop);
  print("<br/>");
  print($data2->obj2prop);
?>

Этот код выводит в браузере следующее:

1
2

Источник: https://www.tutorialspoint.com/

Редакция: Команда webformyself.

Фреймворк YII2. Быстрая разработка с современным PHP фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Узнать подробнее
Самые свежие новости IT и веб-разработки на нашем Telegram-канале

Хотите изучить ООП PHP?

Прямо сейчас посмотрите курс по объектно-ориентированному программированию на PHP (ООП PHP)!

Смотреть курс

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree