Kecuali jika Anda menyertakan tanda kutip tunggal di name
. yang diposting , yang akan memungkinkan Anda untuk keluar dari tanda kutip. Contoh, posting nama sebagai:
' or 1 or '
Klausa WHERE menjadi:
WHERE id = '' or 1 or '';
Ini akan mencocokkan dan mengambil semua baris dalam tabel karena or 1
bagian. Seperti yang Anda lihat, ia keluar dari tanda kutip untuk menyuntikkan beberapa SQL, lalu kembali ke tanda kutip untuk membuat kueri valid.
Tidak, tetapi jika dijalankan dengan mysqli_multi_query
maka ya, Anda dapat menambahkan beberapa kueri di akhir.
Umumnya ya tetapi Pernyataan yang Disiapkan akan lebih baik. Menggunakan melarikan diri, WHERE
klausa akan menjadi (menggunakan contoh saya di atas):
WHERE id = '\' or 1 or \'';
Ini tidak lagi rentan karena tanda kutip tidak dapat dipisahkan, dan hanya akan cocok dengan baris jika name
benar-benar cocok dengan ' or 1 or '
yang jelas tidak mungkin.