Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah mysql_real_escape_string() Melepasi addslashes() dalam Melawan Suntikan SQL?

Bagaimanakah mysql_real_escape_string() Melepasi addslashes() dalam Melawan Suntikan SQL?

Barbara Streisand
Barbara Streisandasal
2024-10-21 13:20:311024semak imbas

How Does mysql_real_escape_string() Surpass addslashes() in Combatting SQL Injection?

Menyingkap Ciri-ciri Tersendiri mysql_real_escape_string() Beyond addslashes()

Walaupun addslashes() berfungsi untuk melepaskan aksara khas, ia gagal dalam menyediakan perlindungan menyeluruh terhadap Serangan suntikan SQL. Sebaliknya, mysql_real_escape_string() menawarkan keselamatan yang dipertingkatkan dengan menangani rangkaian aksara bermasalah yang lebih luas.

Secara khusus, mysql_real_escape_string() menambah garis miring pada aksara berikut:

\x00, \n, \r, \, ', " and \x1a.

Set aksara yang dipertingkatkan ini memastikan bahawa bukan sahaja petikan tunggal dan berganda terlepas, seperti addslashes(), tetapi juga watak lain yang berpotensi berniat jahat dinetralkan.

Untuk menggambarkan perbezaan ini, pertimbangkan contoh berikut:

$string = "' OR 1=1";

$addslashes_example = addslashes($string); // Escapes only single and double quotes
$mysql_rescape_example = mysql_real_escape_string($string); // Escapes single, double, and \x1a characters

echo $addslashes_example; // Outputs: \' OR 1=1
echo $mysql_rescape_example; // Outputs: \' OR 1=1\'

Seperti yang ditunjukkan, mysql_real_escape_string() menyediakan perlindungan yang lebih teguh dengan menghalang pelaksanaan serangan suntikan SQL yang dibuat, manakala addslashes() menyebabkan sistem terdedah. Adalah penting untuk mengakui bahawa kedua-dua mysql_real_escape_string() dan addslashes() telah ditamatkan dan tidak lagi disyorkan untuk digunakan. Sebaliknya, pertanyaan berparameter harus digunakan untuk interaksi pangkalan data yang selamat dan cekap.

Atas ialah kandungan terperinci Bagaimanakah mysql_real_escape_string() Melepasi addslashes() dalam Melawan Suntikan SQL?. 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