လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Socket_Accept ကိုအသုံးပြုနည်း () TLS / SSL နှင့်အတူစာဝှက်ထားသောဆက်သွယ်ရေးကိုအကောင်အထည်ဖော်ရန်

Socket_Accept ကိုအသုံးပြုနည်း () TLS / SSL နှင့်အတူစာဝှက်ထားသောဆက်သွယ်ရေးကိုအကောင်အထည်ဖော်ရန်

M66 2025-05-31

မျက်မှောက်ခေတ်ကွန်ယက်လျှောက်လွှာများတွင်လုံခြုံစိတ်ချရသောဆက်သွယ်ရေးသည်အထူးအရေးကြီးသည်။ Seek Socket functions interface ကို PHP သည် Socket Functions နှင့် TLS / SSL encryption protocols များကိုပေါင်းစပ်ထားပြီးလုံခြုံစိတ်ချရသောစာဝှက်ထားသောဆက်သွယ်ရေးအတွက် tls / ssl encryption protocols များကိုပေါင်းစပ်ထားသည်။ TLS / SSL နှင့်လုံခြုံသောဆက်သွယ်မှုများကိုအောင်မြင်ရန် PHP ၏ Societ_Accept_Accept_Acception () function ကိုမည်သို့အသုံးပြုရမည်ကိုဤဆောင်းပါးသည်ဤဆောင်းပါးသည်အာရုံစိုက်မည်။

1 ။ အခြေခံသဘောတရားများကိုပြန်လည်သုံးသပ်ခြင်း

  • Socket_Accept () - ဤသည်မှာ PHP တွင် Socket Programming ၏အရေးကြီးသော function တစ်ခုဖြစ်သည်။

  • TLS / SSL : သယ်ယူပို့ဆောင်ရေးအလွှာလုံခြုံရေး, ဆက်သွယ်ရေးအကြောင်းအရာကိုစာဝှက်ရန်နှင့်ဒေတာထုတ်လွှင့်မှု၏လုံခြုံရေးကိုသေချာစေရန်အသုံးပြုသည်။

2 ။ PHP Socket_Accept ကို အသုံးပြု. အခြေခံဖြစ်စဉ်ကို ()

ဆာဗာဘက်တွင် Socketets များကိုများသောအားဖြင့်ဖန်တီးလေ့ရှိပြီး binding address များနှင့် ports များသည် connection တောင်းဆိုမှုများအတွက်နားထောင်ရန်ဖြစ်သည်။ client တောင်းဆိုမှု, call societ_accept_Accept () ကိုလက်ခံပြီးနောက် connection ကိုလက်ခံရန်နှင့်အချက်အလက်များကိုဖတ်ရှုခြင်းသို့မဟုတ်စာဖြင့်ရေးသားနိုင်သည်။

 $server = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($server, '0.0.0.0', 4433);
socket_listen($server);

$client = socket_accept($server);
$data = socket_read($client, 2048);
socket_write($client, "Hello Client!");
socket_close($client);
socket_close($server);

အထက်ပါဥပမာကုဒ်သည်ရိုးရှင်းသောစာဝှက်မထားသောဆက်သွယ်ရေးဖြစ်သည်။

3 ။ TLS / SSL ကို Socket_Accept ကို အခြေခံ. မိတ်ဆက်ပေးခြင်း ()

PHP ၏ကိုယ်ပိုင် socket_ * function သည် SSL / TLS ကိုတိုက်ရိုက်မထောက်ပံ့ပါ။

3.1 stream_socket_enable_crypto မှတဆင့် tls ကိုဖွင့်ပါ ()

client နှင့်ချိတ်ဆက်ထားသော Socket Reabor ကိုလက်ခံပြီးနောက် encryption ကို enable လုပ်ရန် stream_socket_enable_crypto () ကိုသုံးပါ။

3.2 နမူနာကုဒ်အကောင်အထည်ဖော်မှု

 // ဖန်တီးTCP socket
$server = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($server, '0.0.0.0', 4433);
socket_listen($server);

// client ဆက်သွယ်မှုကိုလက်ခံပါ
$clientSocket = socket_accept($server);
if ($clientSocket === false) {
    die("Failed to accept socket connection\n");
}

// သေတမ်းစာ socket အရင်းအမြစ်များကိုအသွင်ပြောင်း stream ပစ္စည်းအင်းအား,အသုံးပြုရန်လွယ်ကူသည် stream_socket_enable_crypto()
$clientStream = socket_export_stream($clientSocket);
if ($clientStream === false) {
    die("Failed to convert socket to stream\n");
}

// တည်ဆောက်သည် SSL အစီအစဉ်,လက်မှတ်နှင့်ပုဂ္ဂလိကသော့ပါရှိသည်
$contextOptions = [
    'ssl' => [
        'local_cert' => '/path/to/certificate.pem',  // ဆာဗာလက်မှတ်ဖိုင်
        'local_pk'   => '/path/to/private_key.pem',  // ပုဂ္ဂလိကသော့ဖိုင်
        'allow_self_signed' => true,
        'verify_peer' => false,
    ]
];
$context = stream_context_create($contextOptions);

// စတင်တည်ထောင်သည် TLS စာဝှက်ပယ်
if (!stream_socket_enable_crypto($clientStream, true, STREAM_CRYPTO_METHOD_TLS_SERVER, $context)) {
    die("Failed to enable TLS encryption\n");
}

// client data ကိုဖတ်ပါ
$data = fread($clientStream, 2048);
echo "Received (decrypted): " . $data . "\n";

// 向客户端发送စာဝှက်ပယ်数据
fwrite($clientStream, "Welcome to secure PHP server!");

// ဆက်သွယ်မှုကိုပိတ်ပါ
fclose($clientStream);
socket_close($server);

4 ။ အဓိကအချက်များဖော်ပြချက်

  • Certificate Preventation : local_cert နှင့် local_pk ဖိုင်များသည်တရားဝင်လက်မှတ်များနှင့်ပုဂ္ဂလိကသော့များဖြစ်ရမည်။

  • Socket_export_stream () - Low-level societ အရင်းအမြစ်ကို streaming လုပ်ခြင်းဖြင့်လည်ပတ်နိုင်သည့်အရင်းအမြစ်တစ်ခုသို့ပြောင်းပါ, ထို့နောက် stream_socket_enable_crypto () ကို သုံးနိုင်သည်။

  • အမှားကိုင်တွယ်ခြင်း - ထုတ်လုပ်မှုပတ်ဝန်းကျင်သည်အမှားဖမ်းယူခြင်းနှင့်သစ်ထုတ်လုပ်ခြင်းတွင်အလုပ်ကောင်းကောင်းလုပ်သင့်သည်။

5 ။ လက်တွေ့ကျသော application အခြေအနေများ

  • Secure Chat Service - 0 န်ဆောင်မှုခံယူသူနှင့်ဆာဗာအကြားဆက်သွယ်ရေးအကြောင်းအရာများသည်အချက်အလက်များကိုခိုးနားထောင်ခြင်းသို့မဟုတ်အနှောင့်အယှက်ပေးခြင်းမှကာကွယ်ရန်စာဝှက်ရန်လိုအပ်သည်။

  • ကိုယ်ရေးကိုယ်တာအချက်အလက်ထုတ်လွှင့်ခြင်း - Enterprise Internal 0 န်ဆောင်မှုများသည်အထိခိုက်မခံသောဒေတာထုတ်လွှင့်မှုအတွက်စာဝှက်စနစ်လိုအပ်သည်။

  • စိတ်ကြိုက် protocol လုံခြုံရေးအဆင့်မြှင့်တင်မှု - Socket ကို အခြေခံ. စိတ်ကြိုက် protocol ကိုလုံခြုံရေးတိုးတက်စေရန် TLS မှတဆင့်အကောင်အထည်ဖော်နိုင်သည်။

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

PHP Socket_accept_Accept_Accept_Accept_Acable_crypto () ကို Opensssl မှတိုးချဲ့ထားသည့် Stream_sockable_crypto () ကိုလက်ခံရရှိပြီးနောက် TLS / SSL အပေါ် အခြေခံ. လုံခြုံစွာစာဝှက်ထားသောဆက်သွယ်ရေးဆက်သွယ်ရေးကိုအလွယ်တကူအကောင်အထည်ဖော်နိုင်သည်။ ၎င်းသည်အစပြုသူများအတွက်ခက်ခဲသည်နှင့်တပြိုင်နက်ကျွမ်းကျင်သည်မှာ၎င်းသည်ကွန်ယက်အက်ပလီကေးရှင်းများ၏လုံခြုံရေးကိုထိရောက်စွာတိုးတက်စေနိုင်သည်။