deserialization သည် JSON (သို့) PHP အတွက်ထူးခြားသည့် serialization format ကဲ့သို့သောအချက်အလက်များကိုအချို့သောပုံစံဖြင့်သိမ်းဆည်းထားသောအချက်အလက်များကိုပြန်လည်ပြင်ဆင်ခြင်းလုပ်ငန်းစဉ်ဖြစ်သည်။ PHP တွင် deserialization ကို `serialize ()` `` `` `` `` `` `serialization ကိုသုံးပြီး serialization ပြီးနောက်သိမ်းဆည်းထားရတဲ့ဒေတာကို restore နိုင်ပါတယ်။
PHP တွင် deserialization သည်ရိုးရှင်းသောလုပ်ငန်းစဉ်တစ်ခုဖြစ်ပုံရပြီး developer များကဤအင်္ဂါရပ်များကို၎င်းတို့၏ကုဒ်များတွင်မကြာခဏအသုံးပြုကြသည်။ ဥပမာအားဖြင့်:
Class အသုံးပြုသူ အများပြည်သူ $ အမည်, အများပြည်သူ $ အီးမေးလ်, } $ အသုံးပြုသူ = အသုံးပြုသူအသစ် (), $ user-> အမည် = "အဲလစ်", $ user-> Email = "[email protected]"; // Serial Object $ serializeduser = serialize ($ အသုံးပြုသူ); // အရာဝတ်ထု $ unserializeduser = unserialize ($ serializeduser);
ဤစစ်ဆင်ရေးသည်ပြ problem နာမပါ 0 င်သော်လည်းအလားအလာရှိသောစွန့်စားမှုမှာစွန့်စားမှုမှာ deserialization သည်လုံခြုံရေးအားနည်းချက်များကိုမိတ်ဆက်ပေးနိုင်ခြင်းဖြစ်သည်။
deserialization မှဖြစ်ပေါ်လာသောအဓိကပြ problems နာများထဲမှတစ်ခုမှာလုံခြုံရေးဖြစ်သည်။ အန္တရာယ်ရှိသောအသုံးပြုသူများသည် `` `` `` `` `` function ကိုမှပေးသောအချက်အလက်များကိုထိန်းချုပ်ခြင်းဖြင့်မည်သည့်အရာများကိုမဆိုအသုံးချနိုင်သည်။ ထို့နောက်ခွင့်ပြုချက်မရှိဘဲလုပ်ဆောင်မှုများပြုလုပ်ရန်ဤအရာများကိုအသုံးပြုပါ။
အရာဝတ်ထုဆေးထိုးတိုက်ခိုက်မှုများသည်ဘုံတိုက်ခိုက်မှုနည်းလမ်းဖြစ်သည်။ တိုက်ခိုက်သူများသည်လက်ရှိလူတန်းစားတစ်ခု၏အရာဝတ်ထုတစ်ခုကိုဖန်တီးရန်တိကျသော Serialized data များကိုတည်ဆောက်နိုင်သည်။ ထို့နောက်အချို့သောနည်းလမ်းများကိုအစပျိုးသည်။ အထိခိုက်မခံသောလုပ်ဆောင်မှုများပါ 0 င်သည့်နည်းလမ်းတစ်ခုရှိသည်ဆိုပါစို့။ တိုက်ခိုက်သူသည်ဤနည်းလမ်းကိုအထူးပြုလုပ်ထားသော serialized data များကိုပေးပို့ခြင်းဖြင့်ဤနည်းလမ်းကိုခေါ်နိုင်သည်
Class Admin { အများပြည်သူ function ကို deleteruser () {) // အသုံးပြုသူရဲ့ယုတ္တိဗေဒကိုဖျက်ပါ။ } // တိုက်ခိုက်သူ $ maliciousobment = '' 'O: 5' o: 5 '' O: 5: O: 5: 0: 5: 0: 0: {} ': // အန္တရာယ်ရှိသောအရာဝတ်ထု unerialize ($ maliousobject);
ဤဥပမာတွင်အန္တရာယ်ရှိသောအရာဝတ်ထုကိုမှားယွင်းစွာဖန်တီးထားပြီး `deleteuser ၏နည်းလမ်းကိုစနစ်တစ်ခုလုံး၏လုံခြုံရေးကိုထိခိုက်စေနိုင်သည်။
deserialization စဉ်အတွင်းထိရောက်သောဒေတာစစ်ဆေးမှုမရှိခြင်းသည်အရေးကြီးသောပြ issue နာလည်းဖြစ်သည်။ Developer အများအပြားသည်တရားမ 0 င်အရာဝတ်ထုများကိုထုတ်ယူသောအခါသို့မဟုတ်မကိုက်ညီသောအဖြေများပြသသည့်အခါအစီအစဉ်များကိုပျက်ပြားစေသည့်အချက်အလက်များအားတရား 0 င်စစ်ဆေးမှုများကိုစစ်ဆေးခြင်းမပြုပါ။ ဤကိစ္စတွင်တိုက်ခိုက်သူသည် code တွင်အလားအလာရှိသောအားနည်းချက်များကိုအမြတ်ထုတ်ရန်အချက်အလက်အတုများကိုဖြတ်သွားနိုင်သည်။
deserialization မှတင်ပြသောလုံခြုံရေးအန္တရာယ်များကိုလျှော့ချရန် developer များကိုကူညီရန်အလေ့အကျင့်များစွာရှိသည်။
PHP-seriorization methods အစား JSON ကိုသုံးရန်စဉ်းစားပါ။ JSON သည်ပေါ့ပါးသောဒေတာဖလှယ်ပုံစံဖြစ်ပြီးကုဒ်ကို execute လုပ်နိုင်သောစွမ်းရည်မရှိပါ။ ထို့ကြောင့်ဒေတာများကိုအနှောင့်အယှက်ပေးသော်လည်းတိုက်ခိုက်သူသည် executable code ကိုသာထိုးသွင်း။ မရပါ။
$ ဒေတာ = [အမည် '=>' alice ',' email '=>' [email protected] ']; $ jsondata = json_entode ($ ဒေတာ); // JSON မှ serialize $ decodeddata = JSONS_DECODE ($ jsondata); // deserialization
PHP သည် `` unserialize`. function ကိုတစ် ဦး ကခွင့်ပြုချက်မရှိဘဲအရာဝတ်ထုများကိုကန့်သတ်ထားနိုင်သည်။ ဥပမာအားဖြင့်, `` `` `` `deserialization ကိုခွင့်ပြုသည့်အတန်းအစား,
$ Itealclasses = ['user']; $ unserializedobjectobjectobjectobjectobject = unserialize ($ serial updata, ["ခွင့်ပြုထားသော" => $ အခွင့်ထူး));
အရာဝတ်ထုများသည် PHP တွင်ရိုးရှင်းသောနှင့်အဆင်ပြေသောအင်္ဂါရပ်များနှင့်တူသည်ဟုထင်ရသော်လည်း၎င်းတို့နောက်ကွယ်ရှိလုံခြုံရေးအန္တရာယ်များကိုလျစ်လျူရှုမရနိုင်ပါ။ developer များကသက်ဆိုင်ရာ deserialization ၏သက်ဆိုင်ရာစစ်ဆင်ရေးများကိုအလေးအနက်ထားရန်လိုအပ်သည်။ Code ၏လုံခြုံရေးကိုသေချာစေရန်နှင့်အချက်အလက်များ၏ယုံကြည်စိတ်ချရမှုအားဖြင့်လျှောက်လွှာများ၏ဒေတာလုံခြုံရေးကိုထိရောက်စွာကာကွယ်နိုင်သည်။