zoukankan      html  css  js  c++  java
  • unserialize()过滤机制

    PHP7 增加了可以为 unserialize() 提供过滤的特性,可以防止非法数据进行代码注入,提供了更安全的反序列化数据。

    实例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?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); 
     
    // 默认行为是接收所有类 
    // 第二个参数可以忽略 
    // 如果 allowed_classes 设置为 false, unserialize 会将所有对象转换为 __PHP_Incomplete_Class 对象 
    $data = unserialize($serializedObj1 , ["allowed_classes" => true]); 
     
    //转换为所有对象到 __PHP_Incomplete_Class 对象,除了 MyClass1 和 MyClass2 
    $data2 = unserialize($serializedObj2 , ["allowed_classes" => ["MyClass1", "MyClass2"]]); 
    print($data->obj1prop); 
    print(PHP_EOL); 
    print($data2->obj2prop); 
    ?>

    以上程序执行输出结果为:
    1
    2

    让每一滴智慧绘制成一条不归路!
  • 相关阅读:
    802.11协议网文转载
    三角函数公式大全
    IEEE 802.11ac Standard
    FPGA设计如何进行面积优化
    直流偏差消除
    I/Q不平衡补偿
    WiFi6剩余频偏的影响
    SQL SERVER 调优等待类型
    Nginx
    fatal: HttpRequestException encountered解决方法
  • 原文地址:https://www.cnblogs.com/JdsyJ/p/7503349.html
Copyright © 2011-2022 走看看