အင်တာနက်လျင်မြန်စွာဖွံ့ဖြိုးတိုးတက်မှုနှင့်အတူကွန်ရက်လုံခြုံရေးပြ issues နာများသည်ပိုမိုအရေးကြီးလာသည်နှင့်အမျှပိုမိုအရေးကြီးလာသည်။ ၎င်းတို့အနက် Cross-site scripting (XSS) သည်ဘုံနှင့်အလေးအနက်ထားသောအန္တရာယ်ရှိသောတိုက်ခိုက်မှုဖြစ်သည်။ ဤဆောင်းပါးသည် PHP နှင့် CGI ပရိုဂရမ်ဝန်းကျင်ပတ် 0 န်းကျင်တွင် Cross-site scripting တိုက်ခိုက်မှုများကိုမည်သို့ထိရောက်စွာတားဆီးရန်နှင့်လက်တွေ့ကျကျကုဒ်များကိုဥပမာပေးနိုင်ပုံကိုလေ့လာနိုင်သည်။
Cross-site scripting တိုက်ခိုက်မှုများသည်တိုက်ခိုက်သူများအားဝက်ဘ်ဆိုက်များထဲသို့အန္တရာယ်ရှိသော scripts များထဲသို့ 0 င်ရောက်ခြင်း, တိုက်ခိုက်သူများသည်ဤအရာကိုအသုံးပြုသူ၏သတင်းအချက်အလက်များကို အသုံးပြု. ဝက်ဘ်ဆိုက်များကိုကြည့်ခြင်းစသည်တို့ကိုအသုံးပြုသည်။ XSS ကိုအဓိကအားဖြင့်အမျိုးအစားသုံးမျိုးခွဲခြားထားသည် - သိုလှောင်မှုအမျိုးအစား, ရောင်ပြန်ရေးအမျိုးအစားနှင့် dom type ။
ထိုကဲ့သို့သောတိုက်ခိုက်မှုများကိုကာကွယ်ရန်အကာအကွယ်အစီအမံများလိုအပ်သည်။
အသုံးပြုသူ input သည် XSS တိုက်ခိုက်မှုများအတွက်အဓိက entry ကိုဆိုလိုသည်။ ထည့်သွင်းမှုအကြောင်းအရာကို PHP နှင့် CGI မှပေးသောလုပ်ဆောင်ချက်များကို အသုံးပြု. PHP နှင့် CGI မှပေးသောလုပ်ဆောင်ချက်များကို အသုံးပြု. အတည်ပြုပြီးအတည်ပြုပြီးဖြစ်သည်။
// PHPအထူးအက္ခရာများကိုစစ်ထုတ်ပါ
function filter_input($input) {
return htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
}
// PHPinput ကိုအရှည် Verify
function validate_input($input, $min_len, $max_len) {
$input_len = mb_strlen($input, 'UTF-8');
if ($input_len < $min_len || $input_len > $max_len) {
return false;
}
return true;
}
// CGIအထူးအက္ခရာများကိုစစ်ထုတ်ပါ
sub filter_input {
my ($input) = @_;
$input =~ s/</</g;
$input =~ s/>/>/g;
$input =~ s/'/'/g;
$input =~ s/"/"/g;
return $input;
}
// CGIinput ကိုအရှည် Verify
sub validate_input {
my ($input, $min_len, $max_len) = @_;
my $input_len = length($input);
if ($input_len < $min_len || $input_len > $max_len) {
return 0;
}
return 1;
}
output content ကို encoding encoding encoding browser သည်၎င်းကို executable code သို့ခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်အန္တရာယ်ရှိသောဇာတ်ညွှန်းကိုရှောင်ရှားခြင်းမပြုရန်သေချာစေသည်။
// PHPoutput encoding
function output_encode($output) {
return htmlspecialchars($output, ENT_QUOTES, 'UTF-8');
}
// CGIoutput encoding
sub output_encode {
my ($output) = @_;
$output =~ s/</</g;
$output =~ s/>/>/g;
$output =~ s/'/'/g;
$output =~ s/"/"/g;
return $output;
}
0 က်ဘ်စာမျက်နှာများတွင်တင်ဆောင်နိုင်သည့်အရင်းအမြစ်များဖြစ်သောအရင်းအမြစ်များ (CSP) ကဲ့သို့သောသင့်လျော်သော http response headers headers များကိုပြင်ဆင်ခြင်းဖြင့် XSS တိုက်ခိုက်မှုများ၏အန္တရာယ်ကိုသိသိသာသာလျော့နည်းစေသည်။
// PHPတည်ဆောက်သည်Content-Security-Policyဉီးခေါင်း
header("Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'");
# CGIတည်ဆောက်သည်Content-Security-Policyဉီးခေါင်း
print "Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'\n";
Session Security ကိုတိုးမြှင့်ခြင်းနှင့် session ပြန်ပေးဆွဲခြင်းကိုရှောင်ရှားပါ။ PHP တွင်သင် session_regenate_id () နှင့် session_set_set_cookie_Iss_params () ကိုသုံးနိုင်သည်။
// PHPတည်ဆောက်သည်sessionဘေးကင်းလုံခြုံရေး parameters တွေကို
session_set_cookie_params(0, '/', '', true, true);
session_regenerate_id();
ဆာဗာအဆင့် Firewall သည် Remote and FTP ကဲ့သို့သောဝေးလံခေါင်သီသောနေရာများ (SSH နှင့် FTP ကဲ့သို့သော ports များကိုကန့်သတ်ထားသည်။
Cross-site scripting တိုက်ခိုက်မှုများသည်ဘုံနှင့်ကြီးမားသောလုံခြုံရေးခြိမ်းခြောက်မှုများဖြစ်သည်။ input filtering and verification, output encoding, http header settings, secure session settings, firewall protection, firewall ကာကွယ်မှု, အသုံးပြုသူအချက်အလက်များနှင့်အသုံးချပရိုဂရမ်များလုံခြုံမှုရှိစေရန် Developer များလုံခြုံရေးအတွက်လုံခြုံရေးအကောင်းဆုံးအလေ့အကျင့်များကိုဆက်လက်အာရုံစိုက်သင့်သည်။
အထက်ဖော်ပြပါအချက်သည် PHP နှင့် CGI ပတ် 0 န်းကျင်တွင် Cross-site scripting တိုက်ခိုက်မှုများကိုကာကွယ်ရန်လက်တွေ့ကျသောနည်းလမ်းဖြစ်သည်။ သင်၏ဖွံ့ဖြိုးရေးလုပ်ငန်းများအတွက်အထောက်အကူပြုလိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။