SQL Injection Menghindari mysql_real_escape_string()
Walaupun kepercayaan yang meluas, adalah mungkin untuk memintas perlindungan mysql_real_escape_string() dalam SQL injections(). Ini amat membimbangkan kerana fungsi ini lazimnya diharap untuk melindungi daripada serangan sedemikian.
Eksploitasi
Serangan yang menunjukkan kelemahan ini telah digariskan dalam catatan asal. Kuncinya adalah untuk mengeksploitasi jujukan aksara tertentu ("xbfx27") bersama-sama dengan set aksara tertentu (cth., gbk). Apabila diproses oleh mysql_real_escape_string() di bawah syarat ini, muatan menghasilkan aksara ' yang tidak dapat dilepaskan, yang kemudiannya boleh dieksploitasi untuk tujuan suntikan.
Implikasinya
Kerentanan ini mempunyai implikasi yang meluas, memandangkan kelaziman mysql_real_escape_string() sebagai mekanisme pertahanan terhadap suntikan SQL. Ia memberi kesan kepada aplikasi PHP menggunakan sambungan mysql_ atau PDO_MySQL, terutamanya apabila set aksara yang terdedah digunakan atau penyataan yang disediakan PDO yang dicontohi dipercayai.
Amalan Selamat
Untuk mengurangkan ini kelemahan, adalah penting untuk mematuhi yang terbaik amalan:
Dengan mengikuti garis panduan ini, anda boleh meningkatkan keselamatan aplikasi pangkalan data anda dan melindungi daripada serangan suntikan SQL yang cuba memintas fungsi mysql_real_escape_string().
Atas ialah kandungan terperinci Bolehkah mysql_real_escape_string() Benar-benar Mencegah Serangan Suntikan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!