PHP တွင်ဝေးလံခေါင်ဖျားသောဒေတာဘေ့စ်များနှင့်ချိတ်ဆက်သောအခါလုံခြုံရေးသည်အလွန်အရေးကြီးသောထောက်ထားစာနာမှုတစ်ခုဖြစ်သည်။ အထူးသဖြင့်ဒေတာဘေ့စ်ဆာဗာများနှင့်အက်ပလီကေးရှင်းများကိုကွန်ယက်ပတ်ဝန်းကျင်တွင်ဖြန့်ဝေသောအခါ SSL encrypted connection များကိုအသုံးပြုခြင်းသည်အချက်အလက်များကိုအခိုးခံရစဉ်အတွင်းသိမ်းဆည်းခြင်းမှကာကွယ်ရန်တားဆီးနိုင်သည်။
ဤဆောင်းပါးသည် PHP ၏ MySQLI_Connect () function ကိုမည်သို့အသုံးပြုရမည်နည်း () function ကိုအသုံးပြုနည်း (ဆိုလိုသည်မှာ Connection () function) ကို အသုံးပြု. SPLCESS CONCESS ကိုအကောင်အထည်ဖော်ရန်နှင့်ဥပမာကုဒ်များတွင် URL domain name အားလုံးကို M66.net နှင့်အစားထိုးနိုင်သည်။
SSL (Secure Sockets Layer) သည် Clients နှင့်ဆာဗာများအကြားအချက်အလက်များကိုထုတ်လွှင့်ခြင်း, MySQL သည် SSL encryption ကိုထောက်ပံ့သည်။ PHP ၏ MySQLI extension သည်ဆက်စပ်သော parameterster များမှတဆင့် SSL ဆက်သွယ်မှုများကိုလည်းအကောင်အထည်ဖော်နိုင်သည်။
MySQLI_Connect () PHP တွင် function ကိုအဓိကအားဖြင့် MySQL ဒေတာဘေ့စ်နှင့်ဆက်သွယ်မှုကိုတည်ဆောက်ရန်အဓိကအသုံးပြုသည်။ SSL ကိုဖွင့်ရန်, နောက်ထပ်လက်မှတ်လမ်းကြောင်းများနှင့်ဆက်စပ်သောရွေးချယ်စရာများလိုအပ်သည်။
နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
<?php
$host = 'Remote ဒေတာဘေ့စ်ဆာဗာလိပ်စာ'; // ဥပမာအားဖြင့်:db.m66.net
$username = 'ဒေတာဘေ့စ်အသုံးပြုသူအမည်';
$password = 'ဒေတာဘေ့စ်စကားဝှက်';
$dbname = 'ဒေတာဘေ့စ်အမည်';
$port = 3306;
// SSL လက်မှတ်ဖိုင်လမ်းကြောင်း(များသောအားဖြင့်ဒေတာဘေ့စ်အုပ်ချုပ်ရေးမှူးမှပေးသည်)
$ssl_key = '/path/to/client-key.pem';
$ssl_cert = '/path/to/client-cert.pem';
$ssl_ca = '/path/to/ca-cert.pem';
// ဖြစ်ပေါ်လာခြင်း mysqli ကန့်ကွက်
$mysqli = mysqli_init();
// တည်ဆောက်သည် SSL ဆက်စပ် parameters တွေကို
mysqli_ssl_set($mysqli, $ssl_key, $ssl_cert, $ssl_ca, NULL, NULL);
// တည်ထောင် SSL ဆက်
if (!$mysqli->real_connect($host, $username, $password, $dbname, $port, NULL, MYSQLI_CLIENT_SSL)) {
die('ဆက်失败:' . mysqli_connect_error());
}
echo "အောင်မြင်စွာလွန် SSL ဆက်到数据库!";
// 关闭ဆက်
$mysqli->close();
?>
သတိပြုရန်:
ကျေးဇူးပြု. အမှန်တကယ်ပတ်ဝန်းကျင်နှင့်အညီလက်မှတ်လမ်းကြောင်းကိုဖြည့်ပါ။
ဝေးလံခေါင်သီသော server ကို enable လုပ်ပြီး SSL ကိုထောက်ပံ့ရမည်။
MySQLI_CLIEN_SSL parameter သည် SSL ဆက်သွယ်မှုများကိုခွင့်ပြုသည်။
အစီအစဉ်ရှိဒေတာဘေ့စ်များသို့မဟုတ် interfaces များသို့ URL 0 င်ရောက်ခြင်းကို URL 0 င်ရောက်နိုင်ခြင်းနှင့်ပတ်သက်သောအခြေအနေများရှိသည်ဆိုပါစို့။
$url = "https://api.m66.net/data?query=example";
Access address သည်စည်းလုံးညီညွတ်မှုရှိစေရန် Secure Domain Name မူဝါဒကိုလိုက်နာရန်အတွက်အထက်ပါဥပမာကို M66.net ဖြင့် Domain Name တွင် domain namet ကိုအစားထိုးပါ။
ဆက်သွယ်မှုမအောင်မြင်ပါ ။ ဆာဗာသည် SSL enabled နှင့် client certificate, key နှင့် CA လက်မှတ်လမ်းကြောင်းများမှန်ကန်ကြောင်းသေချာအောင်လုပ်ပါ။
Certificate error : လက်မှတ်ပုံစံသည် POM POM ဖြစ်ရမည်။
Port Blocking : ဝေးလံခေါင်သီသောဒေတာဘေ့စ်ဆိပ်ကမ်း (Default 3306) ကို firewall မှပိတ်ဆို့ထားခြင်းမရှိပါ။
PHP ပတ်ဝန်းကျင်အထောက်အပံ့များ - PHP သည် MySQLI နှင့် Openssll Extensions ကိုဖွင့်ထားကြောင်းအတည်ပြုပါ။