Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah mysql_real_escape_string() Melepasi addslashes() dalam Melawan Suntikan SQL?
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!