လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP Cross-site scripting တိုက်ခိုက်မှုများကိုမည်သို့ကာကွယ်နိုင်သနည်း,

PHP Cross-site scripting တိုက်ခိုက်မှုများကိုမည်သို့ကာကွယ်နိုင်သနည်း,

M66 2025-06-25

PHP Cross-site scripting တိုက်ခိုက်မှုများကိုမည်သို့ကာကွယ်နိုင်သနည်း,

0 က်ဘ်ဆိုက်ဖွံ့ဖြိုးတိုးတက်မှုတွင် Cross-site scripting attack (XSS) သည်ဘုံလုံခြုံရေးခြိမ်းခြောက်မှုတစ်ခုဖြစ်သည်။ XSS သည်အသုံးပြုသူများ browser များကို controls controls ကိုထိန်းချုပ်သည်။ ဤတိုက်ခိုက်မှုကိုတားဆီးရန် PHP developer များသည်ထိရောက်သောလုံခြုံရေးအစီအမံများပြုလုပ်ရန်လိုအပ်သည်။ တစ်ချိန်တည်းမှာပင်ပြ problems နာများကိုဖြေရှင်းရန်နှင့်ပြ esh နာများကိုဖြေရှင်းရန်သတင်းအချက်အလက်များကိုသတင်းပို့ခြင်းအားဖြင့်သင့်လျော်သောအမှားများကိုထုတ်ဖော်ပြောဆိုခြင်းနှင့်ပြ problems နာများကိုဖြေရှင်းရန်သတင်းအချက်အလက်များကိုထုတ်ဖော်ပြောဆိုခြင်း, XSS တိုက်ခိုက်မှုများကိုကာကွယ်ရန်နှင့်သက်ဆိုင်ရာအမှားအယွင်းများကိုကာကွယ်ရန်အတိမ်အနက်ကိုဤဆောင်းပါးတွင်လေ့လာလိမ့်မည်။

1 ။ output content မှလွတ်မြောက်ရန် htmlspecialchars () function ကိုသုံးပါ

PHP သည် htmlspecialchars () function ကိုထောက်ပံ့ပေးသည်။ အကြောင်းအရာကိုမကိုက်ညီမီဤလုပ်ဆောင်မှုကိုအသုံးပြုခြင်းအားဖြင့် XSS တိုက်ခိုက်မှုများကိုသိသိသာသာလျှော့ချနိုင်သည်။ ဒီမှာနမူနာကုဒ်တစ်ခုပါ။

  
$ name = $ _GET [အမည် '];  
ပဲ့တင်သံ htmlspecialchars ($ အမည်);  

ဤဥပမာတွင်ပရိုဂရမ်သည်ဒေါ်လာ _get hyperglobal variable မှ parameter "name" ကိုယူပြီး htmlspecialcharchars () function ကို အသုံးပြု. အန္တရာယ်ရှိသော HTML သို့မဟုတ် Javascript code ကို output မှကာကွယ်ရန်တားဆီးထားသည်။

2 ။ အကြောင်းအရာ Security Policy (CSP) ကို သုံး. http ခေါင်းစီးများကိုသတ်မှတ်ပါ (CSP)

အကြောင်းအရာလုံခြုံရေးမူဝါဒ (CSP) သည်ထိရောက်သောလုံခြုံရေးမူဝါဒတစ်ခုဖြစ်သည်။ CSP header ကိုသတ်မှတ်ခြင်းအားဖြင့်သင်သည် 0 န်ဆောင်မှုပေးရန်ခွင့်ပြုထားသည့်အရင်းအမြစ်များ၏အရင်းအမြစ်ကိုသင်သတ်မှတ်နိုင်သည်, XSS တိုက်ခိုက်မှုများကိုတားဆီးနိုင်သည်။ CSP ပေါ်လစီများကို HTTP ခေါင်းစီးများ၌ပြင်ဆင်ခြင်းအားဖြင့် developer များသည်ပြင်ပအန္တရာယ်ရှိသောဇာတ်ညွှန်းထိုးခြင်းကိုတားဆီးရန်ဝက်ဘ်စာမျက်နှာအရင်းအမြစ်များကို 0 ယ်ယူနိုင်သည်။ ဥပမာများမှာအောက်ပါအတိုင်းဖြစ်သည် -

  
header ("အကြောင်းအရာ - လုံခြုံရေး - မူဝါဒ - Default-SRC 'SRC' SRR"),  

ဤဥပမာတွင် CSP ပေါ်လစီသည်အရင်းအမြစ်အားလက်ရှိအန္တရာယ်ရှိသောကုဒ်များကိုထိထိရောက်ရောက်ကာကွယ်တားဆီးထားသောလက်ရှိ domain name မှသာတင်ရန်ကိုကန့်သတ်ထားသည်။

3 ။ X-Content-type-options များကို သုံး. http header ကိုဖွင့်ပါ

X-Content-type-type-options များသည် mides type sniffing မှတဆင့်ဝက်ဘ်ဆိုက်များကိုခွဲခြမ်းစိတ်ဖြာခြင်းမှတားဆီးသော HTTP header option တစ်ခုဖြစ်သည်။ X-Content-type-options များကို nosniff သို့သတ်မှတ်ခြင်းဖြင့်ဆာဗာမှသတ်မှတ်ထားသောအကြောင်းအရာအမျိုးအစားအရသိရှိလိုပါကထို browser သည်အကြောင်းအရာများကိုအမြဲတမ်းခွဲခြမ်းစိတ်ဖြာနိုင်ကြောင်းသေချာစေနိုင်သည်။ ဥပမာများမှာအောက်ပါအတိုင်းဖြစ်သည် -

  
header ("X-Content-type-options: options: nosniff");  

ဤချိန်ညှိချက်သည်ဆာဗာတုန့်ပြန်မှုတွင်အကြောင်းအရာအမျိုးအစားအရအကြောင်းအရာအမျိုးအစားအရအကြောင်းအရာကိုတင်းကြပ်စွာခွဲခြမ်းစိတ်ဖြာရန်ညွှန်ကြားထားသည်။

4 ။ သက်ဆိုင်ရာအမှားအယွင်းသတင်းအချက်အလက်ကိုထုတ်ပေးသည်

XSS တိုက်ခိုက်မှုများကိုပိုမိုထိရောက်စွာဖြည့်ဆည်းခြင်းနှင့်ပြ troubl နာများကိုဖြေရှင်းရန်အတွက်ကျွန်ုပ်တို့သည်ကုဒ်နံပါတ်ရှိသတင်းအချက်အလက်များကိုအစီရင်ခံသောအမှားများကိုထုတ်ဖော်ပြောဆိုနိုင်သည်။ XSS တိုက်ခိုက်မှုကိုရှာဖွေတွေ့ရှိသောအခါသက်ဆိုင်ရာသတင်းအချက်အလက်များကိုမှတ်တမ်းတင်ထားသင့်ပြီးအမှားအယွင်းများကိုထုတ်ပေးသင့်သည်။ ဒီမှာဥပမာတစ်ခုပါ။

  
$ name = $ _GET [အမည် '];  
လျှင် (Preg_match ("/) <script>/i", $name)) {  
    // တိုက်ခိုက်မှုနှင့်ပတ်သက်သောသတင်းအချက်အလက်များကိုမှတ်တမ်းတင်ပါ  
    error_log("XSSတိုက်ခိုက်ခြင်း:" . $name);  
    // အမှားမက်ဆေ့ခ်ျကိုထုတ်လုပ်ရန်  
    echo "发生了跨站脚本တိုက်ခိုက်ခြင်း,ကျေးဇူးပြုပြီးအန္တရာယ်ရှိတဲ့ကုဒ်မထည့်ပါနဲ့!";  
    exit;  
}  

在这个示例中,preg_match()函数检查参数$name是否包含