PHP 필터 때 unserialize ()
PHP 7 증가를 unserialize 수 ()는,이 데이터 부정 코드 주입을 방지 할 수있다, 필터링 기능을 제공하는 더 안전 직렬화 된 데이터를 제공한다.
예
예
<? php에
클래스 MyClass1 {
공공 $ obj1prop;
}
클래스 MyClass2의 {
공공 $ obj2prop;
}
$ OBJ1 = 새로운 MyClass1 ();
$ OBJ1 -> obj1prop = 1;
$ obj2보다 = 새로운 MyClass2의 ();
$ obj2보다 -> obj2prop = 2;
$ serializedObj1 = 직렬화 ($ OBJ1) ;
$ serializedObj2 = 직렬화 ($ obj2보다) ;
// 기본 동작은 모든 수업을 받게하는 것입니다
// 두 번째 매개 변수는 무시 될 수있다
// 거짓, 때 unserialize 모든 객체로 설정 allowed_classes 객체로 변환 할 경우 __PHP_Incomplete_Class
$ 데이터 = 때 unserialize ($ serializedObj1, [ "allowed_classes"=> 진정한]);
// MyClass1 및 MyClass2의뿐만 아니라, __PHP_Incomplete_Class 개체에 모든 개체를 변환
$의 데이터 2 = 때 unserialize ($ serializedObj2, [ "allowed_classes"=> [ "MyClass1", "MyClass2의"]]);
인쇄 ($ 데이터 -> obj1prop) ;
인쇄 (PHP_EOL);
인쇄 ($의 데이터 2 -> obj2prop) ;
?>
클래스 MyClass1 {
공공 $ obj1prop;
}
클래스 MyClass2의 {
공공 $ obj2prop;
}
$ OBJ1 = 새로운 MyClass1 ();
$ OBJ1 -> obj1prop = 1;
$ obj2보다 = 새로운 MyClass2의 ();
$ obj2보다 -> obj2prop = 2;
$ serializedObj1 = 직렬화 ($ OBJ1) ;
$ serializedObj2 = 직렬화 ($ obj2보다) ;
// 기본 동작은 모든 수업을 받게하는 것입니다
// 두 번째 매개 변수는 무시 될 수있다
// 거짓, 때 unserialize 모든 객체로 설정 allowed_classes 객체로 변환 할 경우 __PHP_Incomplete_Class
$ 데이터 = 때 unserialize ($ serializedObj1, [ "allowed_classes"=> 진정한]);
// MyClass1 및 MyClass2의뿐만 아니라, __PHP_Incomplete_Class 개체에 모든 개체를 변환
$의 데이터 2 = 때 unserialize ($ serializedObj2, [ "allowed_classes"=> [ "MyClass1", "MyClass2의"]]);
인쇄 ($ 데이터 -> obj1prop) ;
인쇄 (PHP_EOL);
인쇄 ($의 데이터 2 -> obj2prop) ;
?>
위의 프로그램 실행 출력은 다음과 같습니다
1 2