လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP Session Cross-Domain Attack Proketer Skills: Cookie Settings, Source Settings, Source Verification နှင့် Token ယန္တရား

PHP Session Cross-Domain Attack Proketer Skills: Cookie Settings, Source Settings, Source Verification နှင့် Token ယန္တရား

M66 2025-06-22

PHP PHP Session Prevention Prevention Prevention Prevention Attacks

0 က်ဘ်အပလီကေးရှင်းများ၌, အစည်းအဝေးများသည်အသုံးပြုသူအဆင့်အတန်းကိုခြေရာခံရန်နှင့်သတင်းအချက်အလက်များကိုရှာဖွေရန်အရေးကြီးသောနည်းလမ်းများဖြစ်သည်။ သို့သော်ဝဘ်ပတ်ဝန်းကျင်ကိုပွင့်လင်းမြင်သာမှုကြောင့် Session Data သည်ဒိုမိန်းကိုဖြတ်ကျော်ရန်ဖြစ်ပေါ်နိုင်သည်။ ဤဆောင်းပါးသည် PHP တွင်ဘုံနှင့်လက်တွေ့အကာအကွယ်ပေးသည့်နည်းစနစ်များကိုဝေငှပြီးတိကျသောကုဒ်များဥပမာများပါဝင်သည်။

1 ။ cookie လုံခြုံရေးဂုဏ်သတ္တိများကိုသတ်မှတ်ပါ

Session ID ကိုများသောအားဖြင့် cookies များတွင်သိမ်းဆည်းထားသည်။ cookie attribute များကိုညှိခြင်းဖြင့်လုံခြုံရေးကိုတားဆီးရန်လုံခြုံရေးကိုကာကွယ်ရန်အတွက်လုံခြုံရေးကိုတိုးမြှင့်နိုင်သည်။ အဓိကအားဖြင့်ပါဝင်ပတ်သက်:

  • Httponly : cookies များကို 0 င်ရောက်ခြင်းမှ JavaScript ကိုပိတ်ဆို့ခြင်းနှင့် scripts များမှတစ်ဆင့် session ID များကိုခိုးယူခြင်းမှရှောင်ရှားသည်။
  • လုံခြုံမှု - လူ -In-the-the-အလယ်အလတ်တိုက်ခိုက်မှုများကိုကာကွယ်ရန် HTTPS ဆက်သွယ်မှုများကိုသာ cookies များကိုသာထုတ်လွှင့်ပါ။

နမူနာကုဒ်:

Session_Start ();
<p>// လက်ရှိ cookie parameter ကိုရယူပါ<br>
$ cookypeApiethaeApeAps = session_cookie_params ();</p>
<p>// လုံခြုံ cookie attribute တွေသတ်မှတ်<br>
session_set_cookie_params (<br>
$ cookterpeApeAps ["တစ်သက်တာ"],<br>
$ cookyporeApeAtherams ["လမ်းကြောင်း"],<br>
$ cookypeeterAps ["ဒိုမိန်း"]]<br>
ဟုတ်ပါတယ်, // လုံခြုံ<br>
ဟုတ်ပါတယ် // htpponly<br>
);</p>
<p>$ _session ["username"] = "user123";</p>
<p>session_write_close ();<br>

2 ။ တောင်းဆိုမှုအရင်းအမြစ်ဒိုမိန်းအမည်ကိုစစ်ဆေးပါ

တောင်းဆိုထားသောရင်းမြစ်ဒိုမိန်းအမည်ကိုစစ်ဆေးခြင်းအားဖြင့်အစည်းအဝေးလည်ပတ်မှုသည်ခွင့်ပြုထားသောဒိုမိန်းအမည်အရသာတွေ့ရှိနိုင်ကြောင်းသေချာစေပါ။ ၎င်းကို $ _server [http_referer 'ကို သုံး. အကောင်အထည်ဖော်နိုင်သည်။ ]

 if (isset($urlParts['host']) && $urlParts['host'] === $allowedDomain) {
    return true;
} else {
    return false;
}

}

// အသုံးပြုမှုဥပမာ
IF (ralidentatereferer ("ဥပမာအားဖြင့်")) {
// session-related စစ်ဆင်ရေးလုပ်ဆောင်ပါ
} အခြား
// တရားမဝင်အရင်းအမြစ်, လက်လှမ်းမီခြင်း,
}

3 ။ CSRF ကိုကာကွယ်ရန်တိုကင်များကိုထုတ်ပေးသည်

ပရိသတ်များတောင်းဆိုမှုများကိုကာကွယ်ရန်ဆာဗာဘက်မှ token ပေါ်ရှိအမှတ်အသား၏ရှေ့နောက်ညီညွတ်မှုကိုပြုလုပ်ပါ။

// တိုကင်ထုတ်လုပ်ခြင်း
function ကိုယေဘူယျအသံ () {
    $ token = bin2hex (Discl_bytes (32));
    $ _session ["csrf_token"] = $ token;
    $ token ပြန်လာ;
}
<p>// TOLKEN စစ်ဆေးပါ<br>
ralalatetoken function ကို ($ token) {<br>
Reward ထုတ်ပေးသူ ($ _ session ["csrf_token"]) && $ _session ["csrf_token"] === $ token;<br>
}</p>
<p>// ရုပ်မြင်သံကြားမှတိုကင်နှင့် output ကိုထုတ်လုပ်ရန်<br>
$ token = ယေဘူယျ (),</p>
<p>ပဲ့တင်သံ<form method="post"> &#39;&#39;;<br>
ပဲ့တင်သံ<input type="hidden" name="csrf_token" value="' . $token . '"> &#39;&#39;;<br>
ပဲ့တင်သံ<input type="submit" value="နားထောင်"> &#39;&#39;;<br>
ပဲ့တင်သံ</form> &#39;&#39;;</p>
<p>// တောင်းဆိုမှုကိုအပြောင်းအလဲနဲ့မှာအတည်ပြုပါ<br>
အကယ်. (ISSET ($ _ post ["csrf_token"]) & & revice ($ _ post [")))<br>
// token တရားဝင်ဖြစ်ပါတယ်, စစ်ဆင်ရေးလုပ်ဆောင်<br>
} အခြား<br>
// တိုကင်မမှန်ကန်ပါ, စစ်ဆင်ရေးငြင်းဆန်သည်<br>
}<br>

အကျဉ်းချုပ်

cookie attribute တွေကိုအားဖြည့်ပေးခြင်းဖြင့်တောင်းဆိုမှုအရင်းအမြစ်ဒိုမိန်းကိုအတည်ပြုပြီး Token ယန္တရားကိုအတည်ပြုခြင်းအားဖြင့် PHP session ၏လက်ဝါးကပ်တိုင်တိုက်ခိုက်မှုအန္တရာယ်များကိုထိရောက်စွာကာကွယ်နိုင်သည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်သီးခြားစီးပွားရေးလုပ်ငန်းများကိုပေါင်းစပ်ရန်အကြံပြုသည်။ အသုံးပြုသူအချက်အလက်များနှင့် privacy လုံခြုံရေးကိုသေချာစေရန်လုံခြုံရေးအားနည်းချက်များနှင့်အဆင့်မြှင့်တင်မှုများအားဆက်လက်အာရုံစိုက်ရန်အကြံပြုသည်။

ဆက်စပ်အကြောင်းအရာ