Rumah > pangkalan data > tutorial mysql > Adakah `mysql_real_escape_string()` Benar-benar Selamat Terhadap Suntikan SQL?

Adakah `mysql_real_escape_string()` Benar-benar Selamat Terhadap Suntikan SQL?

Patricia Arquette
Lepaskan: 2024-12-02 16:09:14
asal
603 orang telah melayarinya

Is `mysql_real_escape_string()` Truly Secure Against SQL Injection?

Mengatasi Kelemahan mysql_real_escape_string()

Walaupun penggunaannya meluas dalam aplikasi PHP, sesetengah pihak telah menimbulkan kebimbangan mengenai kelemahan keselamatan mysql_string(real_escape) ). Fungsi ini direka bentuk untuk menghalang serangan suntikan SQL dengan melepaskan aksara khas dalam input pengguna.

Adakah mysql_real_escape_string() Sama sekali Tidak Mencukupi?

Dokumentasi MySQL C API mengakui potensi isu dengan mysql_real_escape_string(). Ia mencadangkan untuk mengelakkan penggunaan penyataan SET NAMES/SET CHARACTER SET untuk menukar set aksara sambungan. Sebaliknya, fungsi mysql_set_character_set() hendaklah dipanggil sebelum menggunakan mysql_real_escape_string().

Kod Bukti

Fungsi PHP mysql_set_charset() mengubah suai set aksara yang digunakan oleh mysql_real (). Ini digambarkan dalam coretan kod berikut:

<?php
// Connect to MySQL and select the database
$link = mysqli_connect("localhost", "user", "password", "database");

// Set the character set for the connection
mysql_set_charset($link, "utf8");

// Escape the input using mysql_real_escape_string()
$escaped_input = mysql_real_escape_string($link, $input);

// Use the escaped input in a SQL query
$query = "SELECT * FROM table WHERE field = '$escaped_input'";
Salin selepas log masuk

Dengan mengikuti pendekatan ini, set aksara yang digunakan oleh mysql_real_escape_string() boleh ditetapkan secara eksplisit, memastikan aksara khas dilepaskan dengan betul.

Atas ialah kandungan terperinci Adakah `mysql_real_escape_string()` Benar-benar Selamat Terhadap Suntikan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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