လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> FTP_RAWLIST ကိုအသုံးပြုသောအခါ connection သည်လုံခြုံမှုရှိစေရန်မည်သို့သေချာစေနိုင်သနည်း

FTP_RAWLIST ကိုအသုံးပြုသောအခါ connection သည်လုံခြုံမှုရှိစေရန်မည်သို့သေချာစေနိုင်သနည်း

gitbox 2025-05-28

PHP တွင် FTP လုပ်ငန်းများကိုကိုင်တွယ်သည့်အခါ FTP_RAWLIST () function သည် Unix စနစ်များရှိ LS -l command နှင့်ဆင်တူသည့်သတ်မှတ်ထားသောလမ်းညွှန်တစ်ခုအတွက်အသေးစိတ်အချက်အလက်များစာရင်းကိုရရှိစေရန်အလွန်လက်တွေ့ကျသောကိရိယာတစ်ခုဖြစ်သည်။ သို့သော် FTP protocol protocol ကို plaintext မှတဆင့်ကူးစက်သောကြောင့် FTP_RAWLIST ကို အသုံးပြု သည့်အခါအကာအကွယ်မပေးနိုင်ပါက,

1 ။ FTP protocol ၏လုံခြုံရေးပြ issues နာများ

ယင်း၏စတင်ဖွဲ့စည်းခြင်းကတည်းကလုံခြုံရေးသည်၎င်း၏ဝေဖန်မှုများကိုဝေဖန်ပြ 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);

2 ။ လုံခြုံရေးတိုးမြှင့်ဖို့ ftps ကိုသုံးပါ

ရိုးရာ 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 လုပ်ထားလိမ့်မည်။

3 ။ passive mode နှင့် firewall

FTP, အထူးသဖြင့် ftps ကိုအသုံးပြုသောအခါသင်ဆက်သွယ်မှုပြတ်တောက်မှုပြ problems နာများကြုံတွေ့ရလေ့ရှိသည်။ ဘုံအကြောင်းပြချက်တစ်ခုမှာ client client နှင့် server အကြား firewall တစ်ခုရှိသည်။ ဤပြ problem နာကို passive mode ကိုဖွင့်ခြင်းဖြင့်ဖြေရှင်းနိုင်သည်။

 ftp_pasv($conn, true);

passive mode ကိုဖွင့်သောအခါအချက်အလက်ဆက်သွယ်မှုကို client မှစတင်မည်ဖြစ်သော firewall ပြ problems နာအများစုကိုရှောင်ရှားနိုင်သည်။

4 ။ လက်မှတ်အတည်ပြုချက်၏အရေးပါမှု

FTP_SSL_Connect () ကိုအသုံးပြုသည့်အခါ PHP သည်ပုံမှန်အားဖြင့်ဆာဗာလက်မှတ်ကိုအတည်မပြုရပါ။ ဒေတာများကိုစာဝှက်ထားသော်လည်းတိုက်ခိုက်သူသည်ဆာဗာကိုဖောက်ထွင်းနိုင်သည်။ ဖြစ်နိုင်လျှင်အောက်ခြေရှိလက်မှတ်ကိုကိုယ်တိုင်အတည်ပြုရန်သို့မဟုတ်ပြ issue နာကို proxy မှတဆင့်ဖြေရှင်းရန်အကြံပြုသည်။ PHP ၏ FTP ၏ extension သည် Certificate အတည်ပြုခြင်းအားအတည်ပြုခြင်းမဟုတ်သော်လည်းပိုမိုကောင်းမွန်သောထိန်းချုပ်မှုများအတွက် (ftp) နှင့်) curl (ftp) ကဲ့သို့သောအဆင့်မြင့်စာကြည့်တိုက်များ (FTP / SSL) ကဲ့သို့သောအဆင့်မြင့်စာကြည့်တိုက်များအသုံးပြုခြင်းကိုစဉ်းစားပါ။

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

FTP_RAWLIST () Remote ဖိုင်လမ်းညွှန်အချက်အလက်များရရှိရန်အတွက် FTP protocol ၏လုံခြုံရေးဆိုင်ရာအန္တရာယ်များကိုလျစ်လျူမရှုပါနှင့်။ အကြံပြုထားသည့်လုံခြုံရေးအလေ့အကျင့်များမှာ -

  • FTP_Connect အစား FTP_SSL_Connect () ကိုသုံးပါ။

  • Firewall ကန့်သတ်ချက်များကိုကျော်လွှားရန် passive mode ကိုအမြဲတမ်းဖွင့်ပါ။

  • တတ်နိုင်သမျှဆာဗာလက်မှတ်ကိုစစ်ဆေးပါ။

  • ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်စာဝှက်ထားသော FTP လုပ်ငန်းများကိုအသုံးမပြုပါနှင့်။

အထက်ပါအစီအမံများမှတဆင့် FTP စစ်ဆင်ရေးများ၏လုံခြုံရေးဆိုင်ရာအန္တရာယ်များကိုသိသိသာသာလျှော့ချနိုင်ပြီးအချက်အလက်ထုတ်လွှင့်မှု၏သမာဓိနှင့်လျှို့ဝှက်ချက်များကိုကာကွယ်နိုင်သည်။