Rumah >pembangunan bahagian belakang >tutorial php >Adakah mysql_real_escape_string() dan addslashes() Setara dalam Mencegah Suntikan SQL?
Memahami Perbezaan: mysql_real_escape_string() vs. addslashes()
Sementara kedua-dua mysql_real_escape_string() dan addslashes() digunakan untuk digunakan aksara dalam rentetan untuk menghalang serangan suntikan SQL, terdapat perbezaan utama antara kedua-dua fungsi.
mysql_real_escape_string()
Direka bentuk khusus untuk pangkalan data MySQL, fungsi ini menambah garis miring pada watak berikut:
addslash()
Sebaliknya, addslash() hanya menambah garisan pada tiga aksara:
Implikasi Keselamatan
Aplikasi web yang bergantung semata-mata pada addslash() untuk pengesahan input mungkin masih terdedah kepada serangan suntikan SQL Ini kerana addslashes() tidak melindungi daripada semua aksara yang boleh digunakan dalam serangan suntikan, iaitu:
Cadangan
Untuk keselamatan optimum, adalah disyorkan untuk mengelak daripada menggunakan kedua-dua mysql_real_escape_string() dan addslashes() dan sebaliknya menggunakan pertanyaan berparameter atau disediakan kenyataan. Kaedah ini membolehkan anda mengikat input pengguna pada pertanyaan tanpa perlu melarikan diri secara manual, yang lebih selamat dan cekap.
Atas ialah kandungan terperinci Adakah mysql_real_escape_string() dan addslashes() Setara dalam Mencegah Suntikan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!