Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Menyambung dengan Selamat ke Pelayan MySQL Jauh Menggunakan SSL dalam PHP?

Bagaimana untuk Menyambung dengan Selamat ke Pelayan MySQL Jauh Menggunakan SSL dalam PHP?

Linda Hamilton
Linda Hamiltonasal
2024-11-19 21:39:03303semak imbas

How to Securely Connect to a Remote MySQL Server Using SSL in PHP?

Sambung ke Pelayan MySQL Jauh dengan SSL daripada PHP

Menyambung ke pelayan MySQL jauh menggunakan SSL daripada PHP boleh mencabar, terutamanya apabila menggunakan fungsi mysql_connect yang sudah lapuk. Untuk mengatasi cabaran ini, adalah disyorkan untuk menggunakan MySQL Improved Extension (MySQLi), yang menawarkan fungsi yang dipertingkatkan dan sokongan SSL.

Menggunakan MySQLi

Kod PHP berikut menunjukkan bagaimana untuk mewujudkan sambungan yang disulitkan SSL menggunakan MySQLi:

ini_set('error_reporting', E_ALL);
ini_set('display_errors', '1');
error_reporting(E_ALL|E_STRICT);

$db = mysqli_init();
mysqli_options($db, MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true);

$db->ssl_set('/etc/mysql/ssl/client-key.pem', '/etc/mysql/ssl/client-cert.pem', '/etc/mysql/ssl/ca-cert.pem', NULL, NULL);
$link = mysqli_real_connect($db, 'ip', 'user', 'pass', 'db', 3306, NULL, MYSQLI_CLIENT_SSL);
if (!$link) {
    die('Connect error (' . mysqli_connect_errno() . '): ' . mysqli_connect_error() . "\n");
} else {
    $res = $db->query('SHOW TABLES;');
    print_r($res);
    $db->close();
}

Sokongan SSL PDO_MYSQL

Menggunakan PDO_MYSQL dengan SSL memerlukan versi PHP terbaharu yang menyokong SSL. Untuk versi lebih awal daripada 5.3.8, pilihan SSL diabaikan. Walau bagaimanapun, sampel kod berikut menggambarkan konfigurasi SSL dengan PDO_MYSQL:

$pdo = new PDO('mysql:host=ip;dbname=db', 'user', 'pass', array(
    PDO::MYSQL_ATTR_SSL_KEY    => '/etc/mysql/ssl/client-key.pem',
    PDO::MYSQL_ATTR_SSL_CERT   => '/etc/mysql/ssl/client-cert.pem',
    PDO::MYSQL_ATTR_SSL_CA     => '/etc/mysql/ssl/ca-cert.pem'
));
$statement = $pdo->query("SHOW TABLES;");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['_message']);

Dengan mengikuti langkah-langkah ini dan menyesuaikan kod yang diberikan kepada persekitaran khusus anda, anda boleh berjaya mewujudkan sambungan selamat ke pelayan MySQL jauh menggunakan SSL daripada PHP.

Atas ialah kandungan terperinci Bagaimana untuk Menyambung dengan Selamat ke Pelayan MySQL Jauh Menggunakan SSL dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn