လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP သည်မိုဘိုင်းဖုန်းစိစစ်အတည်ပြုခြင်းနှင့် login function: အသေးစိတ်အဆင့်များနှင့်ကြိုတင်ကာကွယ်မှုများ

PHP သည်မိုဘိုင်းဖုန်းစိစစ်အတည်ပြုခြင်းနှင့် login function: အသေးစိတ်အဆင့်များနှင့်ကြိုတင်ကာကွယ်မှုများ

gitbox 2025-06-16

1 ။ နိဒါန်း

Internet Applications များစဉ်ဆက်မပြတ်ဖွံ့ဖြိုးတိုးတက်မှုနှင့်အတူအသုံးပြုသူ 0 င်ရောက်ခြင်း၏အတည်ပြုချက်သည်အထူးသဖြင့်မိုဘိုင်းဖုန်းများအတွက်မိုဘိုင်းဖုန်းများအတွက် 0 ယ်လိုအားရှိသည့် 0 ဘ်ဆိုဒ်များနှင့်အက်ပလီကေးရှင်းများတွင်မရှိမဖြစ်လိုအပ်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်လာသည်။ အသုံးပြုသူအတွေ့အကြုံတိုးတက်စေရန်မိုဘိုင်းဖုန်းအတည်ပြုကုဒ် login နည်းလမ်းသည်လူကြိုက်များလာသည်။ ဤဆောင်းပါးသည်မိုဘိုင်းဖုန်းစိစစ်ရေး login function ကိုအကောင်အထည်ဖော်ရန် PPP ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

2 ။ အကောင်အထည်ဖော်မှုအဆင့်များ

2.1 ။ အတည်ပြုကုဒ်ရယူပါ

Mobile Phone Verification Login ၏ပထမခြေလှမ်းမှာအတည်ပြုကုဒ်ကိုရယူရန်ဖြစ်သည်။ SMS API မှတဆင့်အတည်ပြုကုဒ်များရယူခြင်းသည်အသုံးအများဆုံးနည်းလမ်းဖြစ်သည်။ ဤဆောင်းပါးသည် SMS အတည်ပြုကုဒ်ကိုမည်သို့ရယူရမည်ကိုပြသရန်အလီဘာဘာ Cloud SMS 0 န်ဆောင်မှုကိုဥပမာတစ်ခုအဖြစ်ယူဆသည်။

ပထမ ဦး စွာ SDK အတွက် SDK ဝန်ဆောင်မှုအတွက်မိတ်ဆက်ပေးရန်လိုအပ်သည်။

 
require_once 'alidayu/TopSdk.php';
date_default_timezone_set('Asia/Shanghai');

ထို့နောက်သက်ဆိုင်ရာ parameters တွေကိုသတ်မှတ်ထားပါ။

 
// တည်ဆောက်သည်appkeyနှင့်secret
$c = new TopClient();
$c->appkey = 'appkey';
$c->secretKey = 'secret';
$req = new AlibabaAliqinFcSmsNumSendRequest();
// တည်ဆောက်သည်短信类型
$req->setSmsType("normal");
// တည်ဆောက်သည်短信签名
$req->setSmsFreeSignName("အတည်ပြုအတည်ပြုပါ");
// တည်ဆောက်သည်接收短信的ဖုန်းနံပါတ်
$req->setRecNum("ဖုန်းနံပါတ်");
// တည်ဆောက်သည်短信模板ID
$req->setSmsTemplateCode("SMS_5044823");
// တည်ဆောက်သည်短信အတွက်အတည်ပြုကုဒ်参数
$random = mt_rand(1000, 9999);
$req->setSmsParam("{\"code\":\"$random\"}");
// ပို့ခြင်း
$resp = $c->execute($req);

၎င်းတို့အနက် appkkey, လျှို့ဝှက်နှင့် SMS template IDs များကို Alibaba Cloud Console တွင်ဖန်တီးရန်လိုအပ်သည်။

2.2 ။ အတည်ပြုကုဒ်များသိုလှောင်မှု

အတည်ပြုကုဒ်သိုလှောင်မှုကို session တစ်ခုသို့မဟုတ် redis အဖြစ်ရွေးချယ်နိုင်ပါသည်။ ဤဆောင်းပါးတွင် Redis သည်ပိုမိုကောင်းမွန်သောစကေးနိုင်မှုနှင့်မြင့်မားသောတစ်ပြိုင်နက်တည်း applicenciency အခြေအနေများအတွက်သင့်လျော်သောကြောင့် Redis ကိုအသုံးပြုသည်။

ပထမ ဦး စွာ Redis ကိုမိတ်ဆက်ပေးပါ

 
$redis = new Redis();
$redis->connect('localhost', 6379);

ထို့နောက်အတည်ပြုကုဒ်ကိုသိမ်းဆည်းပြီးသက်တမ်းကုန်ဆုံးချိန်ကိုသတ်မှတ်ပါ။

 
$redis->set('key', 'value');
// တည်ဆောက်သည်验证码的过期时间为10မိနစ်
$redis->expire('key', 600);

2.3 ။ အတည်ပြုကုဒ်၏စိစစ်အတည်ပြု

အသုံးပြုသူသည်အတည်ပြုကုဒ်ထဲသို့ 0 င်ရောက်ပြီးနောက်အသုံးပြုသူမှထည့်သွင်းထားသောအတည်ပြုကုဒ်သည် Redis တွင်သိမ်းဆည်းထားသောအတည်ပြုနံပါတ်နှင့်ကိုက်ညီမှုရှိ, မရှိကိုစစ်ဆေးရန်လိုအပ်သည်။

 
// အသုံးပြုသူမှထည့်သွင်းထားသောအတည်ပြုကုဒ်ကိုရယူပါ
$code = $_POST['code'];
// အတွက်သိုလှောင်ရယူပါRedisအတွက်အတည်ပြုကုဒ်
$redis_code = $redis->get('key');
if ($code == $redis_code) {
    // အတည်ပြုအောင်မြင်သည်
} else {
    // အတည်ပြုပျက်ကွက်
}

2.4 ။ အောင်မြင်သော login အပြောင်းအလဲနဲ့

အတည်ပြုပြီးပါကအသုံးပြုသူ၏အချက်အလက်များကို session သို့မဟုတ် database တွင် session သို့မဟုတ် database တွင်သိမ်းဆည်းရန်လိုအပ်သည်။

2.5 ။ လုံခြုံရေးပြုပြင်ခြင်း

login ကိုအတည်ပြုရန်သင်၏မိုဘိုင်းဖုန်းကိုသုံးစဉ်အတွင်းလုံခြုံရေးပြ issues နာများကိုဂရုပြုပါ။ အတည်ပြုကုဒ်၏တရားဝင်မှုကာလသည်တိုတောင်းပြီးအန္တရာယ်ရှိသောတိုက်ခိုက်မှုများကိုထိခိုက်လွယ်သည်။ brute force cracking ကိုရှောင်ရှားနိုင်ရန်အတွက်သတ်မှတ်ထားသောအချိန်အတန်ကြာကာလအတွင်းလူကြိုက်များသောအသုံးပြုသူတူညီသောအသုံးပြုသူတူညီသောအချိန်ကိုကန့်သတ်ရန်သို့မဟုတ်လူ့ကွန်ပျူတာစိစစ်မှု (ဥပမာအားဖြင့် sliding code များကဲ့သို့) ကိုပေါင်းစပ်ရန်အကြံပြုသည်။

3 ။ မှတ်စုဖို့အရာ

3.1 ။ အတည်ပြုကုဒ်၏သက်တမ်းကာလ

တိကျသော application ဇာတ်လမ်းအရအတည်ပြုကုဒ်ကိုအတည်ပြုသည့်ကုဒ်၏သက်တမ်းကိုသတ်မှတ်ရန်လိုအပ်သည်။ ယေဘုယျအားဖြင့်ပြောရလျှင်အတည်ပြုကုဒ်၏တရားဝင်မှုကာလကိုစက္ကန့် 60 အထိထားရန်ပိုမိုသင့်လျော်သည်။ သို့သော်အထူးအခြေအနေများတွင်အသုံးပြုရန်အတွက်အသုံးပြုသူသည်ကွန်ယက်ပြ problems နာများသို့မဟုတ်အခြားအကြောင်းပြချက်များကြောင့်အချိန်အတောအတွင်းစစ်ဆေးမှုကုဒ်ကိုအချိန်မီမရနိုင်ပါကအတည်ပြုကုဒ်၏တရားဝင်မှုကာလကိုသင့်လျော်စွာတိုးချဲ့နိုင်သည်။

3.2 ။ တိုက်ဖျက်ရေးမဟာဗျူဟာ၏ချိန်ညှိချက်များ

အတည်ပြုချက်ကုဒ်ကိုဆွဲဆောင်ခြင်းမှဖယ်ရှားခြင်းမှကာကွယ်ခြင်းမှကာကွယ်ရန်အတွက်တိုက်ဖျက်ရေးနည်းဗျူဟာကိုဆန့်ကျင်ရေးမဟာဗျူဟာကိုသတ်မှတ်နိုင်သည်။ ဥပမာအားဖြင့်အချိန်အတန်ကြာကာလအတွင်းအသုံးပြုသူတစ် ဦး ချင်းစီကိုရယူရန်ကုဒ်များကိုရယူသည့်အကြိမ်အရေအတွက်ကိုကန့်သတ်ပါ,

3.3 ။ ဒေတာဘေ့စလယ်ကွင်း၏ချိန်ညှိချက်များ

login ကိုအတည်ပြုရန်သင်၏မိုဘိုင်းဖုန်းကိုအသုံးပြုသောအခါအသုံးပြုသူ login method ကိုမှတ်သားရန်ဒေတာဘေ့စ်သို့ကွက်လပ်အသစ်တစ်ခုထည့်ရန်အကြံပြုသည်။ ပုံမှန်အားဖြင့်အသုံးပြုသူများသည်စကားဝှက်ဖြင့်ဝင်ရောက်ပါ။ အကယ်. သုံးစွဲသူများသည်အတည်ပြုကုဒ်ဖြင့်ဝင်ရောက်ပါက၎င်းတို့သည်ဤကွက်လပ်ကို "ကုဒ်နံပါတ်" သို့မဟုတ်နောက်ဆက်တွဲအပြောင်းအလဲအတွက်အခြားဖော်ထုတ်ခြင်းကိုသတ်မှတ်နိုင်သည်။

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

ဤဆောင်းပါးသည် PHP မှမိုဘိုင်းဖုန်းစိစစ်အတည်ပြုခြင်းနှင့် login function ကို PHP မှတစ်ဆင့် PHP မှတစ်ဆင့်မည်သို့နားလည်ရမည်ကိုမိတ်ဆက်ပေးသည်။ တစ်ချိန်တည်းမှာပင်အတည်ပြုထားသောကုဒ်၏တရားဝင်မှုကာလကိုမည်သို့သတ်မှတ်မည်နည်းဟုကြိုတင်ပြင်ဆင်မှုများကိုလည်းဆွေးနွေးထားသည်။ စနစ်၏လုံခြုံရေးနှင့်ထိရောက်မှုကိုသေချာစေရန် developer များအမှန်တကယ်လိုအပ်ချက်များအရသင့်လျော်သောဖြေရှင်းချက်ကိုရွေးချယ်သင့်သည်။