လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP Pseudo-protocol analysis: ဘုံအမျိုးအစားများနှင့်လုံခြုံရေးခွဲခြမ်းစိတ်ဖြာခြင်း

PHP Pseudo-protocol analysis: ဘုံအမျိုးအစားများနှင့်လုံခြုံရေးခွဲခြမ်းစိတ်ဖြာခြင်း

gitbox 2025-06-23

1 ။ Pseudo-protocol ၏အဓိပ္ပါယ်

Pseudo-protocol သည် URL တွင်အသုံးပြုသောအထူး protocol တစ်ခုဖြစ်သည်။ ၎င်းသည်စစ်မှန်သော protocol မဟုတ်ပါ, သို့သော်၎င်းသည်မတူညီသောအရင်းအမြစ်များကို 0 င်ရောက်ခွင့်ပြုသည်သို့မဟုတ်အချို့သောလုပ်ငန်းများကိုသီးခြား URL format ဖြင့်ပြုလုပ်သည်။ Pseudo-protocol ၏လုပ်ဆောင်မှုနိယာမသည် URL ရှိအစီအစဉ်အပိုင်းမှတစ်ဆင့်ကွဲပြားသောတောင်းဆိုမှုများကိုဖော်ထုတ်ရန်နှင့်လုပ်ဆောင်ရန်ဖြစ်သည်။

2 ။ ဘုံ PPP Pseuudo-protocol

PHP သည် Pseudo-protocols အမျိုးမျိုးကိုထောက်ပံ့သည်။

2.1 ဖိုင် - //

File: // Pseudo-protocol ကို local files (သို့) လမ်းညွှန်များကိုရယူရန်အသုံးပြုသည်။ ဤနည်းအားဖြင့် PHP သည် local file content သို့မဟုတ် directory structure ကိုဖတ်ရှုနိုင်သည်။

PHP တွင် file_get_contontent function ကို အသုံးပြု. local files များကိုဖတ်ပါ။

 file_get_contents('file:///path/to/file');

PHP ရှိဒေသဆိုင်ရာလမ်းညွှန်ကိုဖတ်ရန် file_get_contontents function ကိုသုံးပါ။

 file_get_contents('file:///path/to/directory/');

2.2 http: //

HTTP: // Pseudo-protocol ကို http တောင်းဆိုမှုများကိုပေးပို့ရန်နှင့်ဝေးလံခေါင်သီသယံဇာတအရင်းအမြစ်များကိုရယူရန်အသုံးပြုသည်။ အသုံးများသောအသုံးပြုမှုမှာဝေးလံခေါင်သီသော URL ကို Pseudo-protocol သို့သွားရန်ဖြစ်သည်။

File_get_Contents Function ကို သုံး. Remote အရင်းအမြစ်များရရန် PHP တွင်လုပ်ဆောင်ပါ။

 $contents = file_get_contents('http://example.com');

2.3 FTP: //

FTP: // Pseudo-protocol ကို FTP ဆာဗာများပေါ်တွင်ဖိုင်များကိုရယူရန်နှင့်လည်ပတ်ရန်အသုံးပြုသည်။ ၎င်းသည် URL ၏တစ်စိတ်တစ်ပိုင်းအဖြစ် FTP လိပ်စာကိုဖြတ်သန်းသွားနိုင်သည်။

PHP တွင် file_get_contontent function ကို သုံး. ftp server မှဖိုင်များကိုဖတ်ပါ။

 file_get_contents('ftp://username:[email protected]/path/to/file');

2.4 ဒေတာ: //

ဒေတာ: // Pseudo-protocol ကိုဖိုင်များသို့မဟုတ်ကွန်ယက်များမှအချက်အလက်များကိုရယူခြင်းထက်ဒေတာများကို URLs များသို့တိုက်ရိုက် unbuls သို့တိုက်ရိုက်ထည့်သွင်းရန်အသုံးပြုသည်။ ၎င်းသည်ဒေတာများကို URL ၏တစ်စိတ်တစ်ပိုင်းအဖြစ်ဖြတ်သန်းသွားသည်။

ဒေတာ၏ URL ကိုဖန်တီးပါ PHP ရှိ Pseudo Protocol:

 $data = 'Hello, World!';
$url = 'data:text/plain;base64,' . base64_encode($data);

3 ။ Pseudo-protocols ၏လုံခြုံရေး

Pseudo-protocol သည် PHP တွင်အမျိုးမျိုးသောလုပ်ဆောင်ချက်များကိုအလွယ်တကူအကောင်အထည်ဖော်နိုင်သော်လည်းလုံခြုံရေးဆိုင်ရာအန္တရာယ်အချို့ကိုလည်းပြုလုပ်နိုင်သည်။ အသုံးပြုသူ input ကိုပြုပြင်ပါကအထူးသဖြင့်လမ်းကြောင်းသို့မဟုတ်ပြင်ပအရင်းအမြစ်များကိုဖိုင်များနှင့်ပတ်သက်လာလျှင် developer များအထူးသဖြင့်မတရားဖမ်းဆီးခြင်း, command စာဖတ်ခြင်း,

3.1 မည်သည့်ဖိုင်ဖတ်နေသည့်တိုက်ခိုက်မှုများကိုမဆိုတားဆီးခြင်း

input ကိုစစ်ဆေးခြင်းနှင့်စစ်ထုတ်ခြင်းအားဖြင့်မည်သည့်ဖိုင်ကိုဖတ်ရှုခြင်းတိုက်ခိုက်မှုများကိုမဆိုထိရောက်စွာတားဆီးနိုင်ပြီးအသုံးပြုသူများသည်စနစ်အတွင်းရှိအထိခိုက်မခံနိုင်သောဖိုင်များကိုမတတ်နိုင်စေရန်သေချာစွာကာကွယ်နိုင်သည်။

 $filename = $_GET['filename'];
if (strpos($filename, '..') !== false) {
    die('Invalid filename');
}
$file = file_get_contents('file://' . $filename);
echo $file;

3.2 command injection တိုက်ခိုက်မှုတားဆီး

command into in ဆေးထိုးခြင်းသည်အခြားဘုံလုံခြုံရေးအန္တရာယ်ဖြစ်သည်။ အသုံးပြုသူ input ကိုသင့်လျော်သော filtering ဖြင့် command injection ကိုရှောင်ရှားနိုင်သည်။

 $command = $_GET['command'];
$result = shell_exec($command);
echo $result;

4 ။ အကျဉ်းချုပ်

PHP ရှိ Pseudo-protocol သည် file :/, http: //, FTP: // နှင့်ဒေတာများအပါအ 0 င် developer များနှင့်အတူ developer များကိုထောက်ပံ့ပေးသည်။ သို့သော် Pseudo-protocols များကိုအသုံးပြုသည့်အခါအထူးသဖြင့်အသုံးပြုသူ input ကို အသုံးပြု. စနစ်၏လုံခြုံမှုကိုသေချာစေရန်တင်းကျပ်သောစိစစ်မှုနှင့်စီစစ်ခြင်းများလိုအပ်သည့်အခါအထူးသတိထားပါ။