Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menulis Pertanyaan MySQL Selamat Menggunakan Fungsi mysql_*?

Bagaimanakah Saya Boleh Menulis Pertanyaan MySQL Selamat Menggunakan Fungsi mysql_*?

Patricia Arquette
Patricia Arquetteasal
2024-12-17 09:50:24365semak imbas

How Can I Write Secure MySQL Queries Using the mysql_* Functions?

Rujukan: Menulis Kod MySQL Selamat Tanpa PDO

Pengenalan

Pertanyaan MySQL sering diganggu dengan kelemahan dan kesilapan keselamatan akibat pengendalian yang tidak betul. Untuk menangani perkara ini, adalah penting untuk memahami amalan terbaik untuk menulis kod yang selamat dan boleh dipercayai.

Kebimbangan Keselamatan dengan Fungsi MySQL_*

Apabila menggunakan keluarga fungsi mysql_* , isu keselamatan biasa timbul:

  • SQL Suntikan: Penyerang boleh memanipulasi pertanyaan dengan menyuntik pernyataan SQL hasad ke dalam input pengguna.
  • Skrip Merentas Tapak (XSS): JavaScript hasad boleh dilaksanakan dengan menyuntiknya ke dalam nilai yang dikeluarkan.

Contoh Penggunaan

Sampel kod PHP berikut menunjukkan cara melaksanakan pertanyaan KEMASKINI yang selamat dan terjamin menggunakan fungsi mysql_*:

<?php

# Connect and disable mysql error output
$connection = @mysql_connect($config['host'], $config['user'], $config['pass']);

# Select database
mysql_select_db($config['db'], $connection);

# Set character set
mysql_set_charset('utf8', $connection);

# Escape user input
$id = mysql_real_escape_string($_POST['id']);
$name = mysql_real_escape_string($_POST['name']);

# Execute query
$result = mysql_query('UPDATE tablename SET name = "' . $name . '" WHERE id = "' . $id . '"', $connection);

# Handle result
if ($result) {
    echo htmlentities($name, ENT_COMPAT, 'utf-8') . ' updated.';
} else {
    trigger_error('Unable to update db: ' . mysql_error(), E_USER_ERROR);
}

?>

Ciri Utama

  • Melepaskan input pengguna untuk menghalang suntikan SQL.
  • Mengekodkan dikeluarkan nilai untuk mengurangkan risiko XSS.
  • Menetapkan pengekodan aksara untuk mengendalikan data Unikod.
  • Menggunakan pengendalian ralat untuk memberitahu pengguna tentang sebarang isu dalam mod pengeluaran.
  • Memastikan kod mudah dan boleh dibaca dengan mudah pemahaman.

Kesimpulan

Dengan mengikuti amalan terbaik yang digariskan di atas, anda boleh menulis pertanyaan MySQL yang selamat dan cekap menggunakan fungsi mysql_*. Ingat, adalah penting untuk melindungi aplikasi anda daripada kelemahan keselamatan dan memastikan integriti data.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menulis Pertanyaan MySQL Selamat Menggunakan Fungsi mysql_*?. 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