Rumah > pangkalan data > tutorial mysql > Adakah mysql_real_escape_string() Benar-benar Cacat, atau Hanya Disalahgunakan?

Adakah mysql_real_escape_string() Benar-benar Cacat, atau Hanya Disalahgunakan?

DDD
Lepaskan: 2024-12-04 10:11:17
asal
383 orang telah melayarinya

Is mysql_real_escape_string() Truly Flawed, or Just Misused?

Menyanggah Kepincangan yang Didakwa: Meneroka Kebolehpercayaan mysql_real_escape_string()

Walaupun terdapat dakwaan bahawa mysql_real_escape_string() menunjukkan kekurangannya, bukti robus menunjukkan kekurangannya. perlindungan terhadap kelemahan suntikan SQL apabila digunakan dengan sewajarnya.

Pemeriksaan terhadap apa yang dipanggil kelemahan mendedahkan bahawa ia biasanya berpunca daripada penggunaan yang tidak betul atau maklumat lapuk. Seperti yang dinyatakan oleh dokumentasi MySQL C API secara eksplisit, adalah penting untuk menetapkan set aksara menggunakan mysql_set_character_set() dan bukannya SET NAMES atau SET CHARACTER SET penyataan. Pilihan terakhir tidak menjejaskan set aksara yang digunakan oleh mysql_real_escape_string().

mysql_set_charset() PHP berfungsi sebagai rakan sejawat kepada mysql_set_character_set() MySQL. Dengan menggunakannya untuk mengubah suai pengekodan, pembangun boleh memastikan keserasian dan mengelakkan isu yang berpotensi.

Contoh Kod:

<?php
$mysqli = new mysqli('host', 'user', 'password', 'database');
$mysqli->set_charset('utf8mb4'); // Set utf8mb4 encoding

// Example usage of mysql_real_escape_string()
$escaped_string = mysql_real_escape_string($mysqli->connect_errno, $_POST['username']);
Salin selepas log masuk

Pendekatan ini menetapkan set aksara secara berkesan dan melepaskan input pengguna dengan betul menggunakan mysql_real_escape_string( ), mengurangkan risiko serangan suntikan SQL.

Atas ialah kandungan terperinci Adakah mysql_real_escape_string() Benar-benar Cacat, atau Hanya Disalahgunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan