PHP တွင် FTP လုပ်ငန်းများကိုကိုင်တွယ်သည့်အခါ FTP_RAWLIST () function သည် Unix စနစ်များရှိ LS -l command နှင့်ဆင်တူသည့်သတ်မှတ်ထားသောလမ်းညွှန်တစ်ခုအတွက်အသေးစိတ်အချက်အလက်များစာရင်းကိုရရှိစေရန်အလွန်လက်တွေ့ကျသောကိရိယာတစ်ခုဖြစ်သည်။ သို့သော် FTP protocol protocol ကို plaintext မှတဆင့်ကူးစက်သောကြောင့် FTP_RAWLIST ကို အသုံးပြု သည့်အခါအကာအကွယ်မပေးနိုင်ပါက,
ယင်း၏စတင်ဖွဲ့စည်းခြင်းကတည်းကလုံခြုံရေးသည်၎င်း၏ဝေဖန်မှုများကိုဝေဖန်ပြ issues နာတစ်ခုဖြစ်သည်။ Standard FTP ဆက်သွယ်မှုကိုအသုံးပြုသောအခါအဓိကလုံခြုံရေးဆိုင်ရာအန္တရာယ်အချို့ကိုဤတွင်ဖော်ပြထားသည်။
Plain Text Transfer Account Password : Attacker များသည် Network Sniffing မှတဆင့် login အထောက်အထားများကိုအလွယ်တကူကြားဖြတ်နိုင်သည်။
ဒေတာထုတ်လွှင့်မှုကို encrypt လုပ်ထားခြင်းမရှိပါ ။ လမ်းညွှန်စာရင်းနှင့်ဖိုင်တွဲများကိုလည်းလွင်ပြင်စာသားဖြင့်ပို့သည်။
လူ -In-the-the-the-the-the-the-the-the- အလယ်တိုက်ခိုက်မှုများ (MITM) မှအားနည်းချက် - စိစစ်အတည်ပြုယန္တရားမရှိခြင်းကြောင့်ဆက်သွယ်ရေးအကြောင်းအရာများနှင့်အတူအနှောင့်အယှက်ပေးနိုင်ပါတယ်။
ထို့ကြောင့်, သင်သည်အောက်ပါကုဒ်ကိုတိုက်ရိုက်အသုံးပြုပါကအထက်ပါအန္တရာယ်များနှင့်ရင်ဆိုင်ရလိမ့်မည်။
$conn = ftp_connect("gitbox.net");
$login = ftp_login($conn, "username", "password");
$list = ftp_rawlist($conn, "/");
print_r($list);
ရိုးရာ FTP ၏လုံခြုံရေးပြ problems နာများကိုဖြေရှင်းရန် FTPs (FTP Secure) ကို ဖြေရှင်းရန်အကြံပြုသည်။ FTPs သည် SSL / TLS encryption layer သို့ SSL / TLS encryption layer ကို FTP protocol ထဲသို့ထည့်သွင်းထားသည်။
PHP တွင် FTP များကိုအသုံးပြုခြင်းသည်အလွန်ရိုးရှင်းပါသည်။
$conn = ftp_ssl_connect("gitbox.net");
if (!$conn) {
die("လုံခြုံတဲ့ဆက်သွယ်မှုကိုမတည်ဆောက်နိုင်ပါ");
}
$login = ftp_login($conn, "username", "password");
if (!$login) {
die("လော့ဂ်အင်မအောင်မြင်ပါ");
}
$list = ftp_rawlist($conn, "/");
print_r($list);
ftp_close($conn);
FTP_SSL_Connect () သည် encrypted connection များကိုတည်ဆောက်ထားသည့် FTP_Connect () အတွက်လုံခြုံသောအခြားရွေးချယ်စရာတစ်ခုဖြစ်သည်။ ဤနည်းအားဖြင့် Username, Password, command and data ထုတ်လွှင့်ခြင်းကို TLS မှတဆင့် encrypt လုပ်ထားလိမ့်မည်။
FTP, အထူးသဖြင့် ftps ကိုအသုံးပြုသောအခါသင်ဆက်သွယ်မှုပြတ်တောက်မှုပြ problems နာများကြုံတွေ့ရလေ့ရှိသည်။ ဘုံအကြောင်းပြချက်တစ်ခုမှာ client client နှင့် server အကြား firewall တစ်ခုရှိသည်။ ဤပြ problem နာကို passive mode ကိုဖွင့်ခြင်းဖြင့်ဖြေရှင်းနိုင်သည်။
ftp_pasv($conn, true);
passive mode ကိုဖွင့်သောအခါအချက်အလက်ဆက်သွယ်မှုကို client မှစတင်မည်ဖြစ်သော firewall ပြ problems နာအများစုကိုရှောင်ရှားနိုင်သည်။
FTP_SSL_Connect () ကိုအသုံးပြုသည့်အခါ PHP သည်ပုံမှန်အားဖြင့်ဆာဗာလက်မှတ်ကိုအတည်မပြုရပါ။ ဒေတာများကိုစာဝှက်ထားသော်လည်းတိုက်ခိုက်သူသည်ဆာဗာကိုဖောက်ထွင်းနိုင်သည်။ ဖြစ်နိုင်လျှင်အောက်ခြေရှိလက်မှတ်ကိုကိုယ်တိုင်အတည်ပြုရန်သို့မဟုတ်ပြ issue နာကို proxy မှတဆင့်ဖြေရှင်းရန်အကြံပြုသည်။ PHP ၏ FTP ၏ extension သည် Certificate အတည်ပြုခြင်းအားအတည်ပြုခြင်းမဟုတ်သော်လည်းပိုမိုကောင်းမွန်သောထိန်းချုပ်မှုများအတွက် (ftp) နှင့်) curl (ftp) ကဲ့သို့သောအဆင့်မြင့်စာကြည့်တိုက်များ (FTP / SSL) ကဲ့သို့သောအဆင့်မြင့်စာကြည့်တိုက်များအသုံးပြုခြင်းကိုစဉ်းစားပါ။
FTP_RAWLIST () Remote ဖိုင်လမ်းညွှန်အချက်အလက်များရရှိရန်အတွက် FTP protocol ၏လုံခြုံရေးဆိုင်ရာအန္တရာယ်များကိုလျစ်လျူမရှုပါနှင့်။ အကြံပြုထားသည့်လုံခြုံရေးအလေ့အကျင့်များမှာ -
FTP_Connect အစား FTP_SSL_Connect () ကိုသုံးပါ။
Firewall ကန့်သတ်ချက်များကိုကျော်လွှားရန် passive mode ကိုအမြဲတမ်းဖွင့်ပါ။
တတ်နိုင်သမျှဆာဗာလက်မှတ်ကိုစစ်ဆေးပါ။
ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်စာဝှက်ထားသော FTP လုပ်ငန်းများကိုအသုံးမပြုပါနှင့်။
အထက်ပါအစီအမံများမှတဆင့် FTP စစ်ဆင်ရေးများ၏လုံခြုံရေးဆိုင်ရာအန္တရာယ်များကိုသိသိသာသာလျှော့ချနိုင်ပြီးအချက်အလက်ထုတ်လွှင့်မှု၏သမာဓိနှင့်လျှို့ဝှက်ချက်များကိုကာကွယ်နိုင်သည်။