Serangan injeksi SQL terjadi ketika masukan pengguna dikodekan dengan tidak benar. Biasanya, input pengguna adalah beberapa data yang dikirim pengguna dengan kuerinya, yaitu nilai dalam $_GET
, $_POST
, $_COOKIE
, $_REQUEST
, atau $_SERVER
array. Namun, masukan pengguna juga dapat berasal dari berbagai sumber lain, seperti soket, situs web jarak jauh, file, dll. Oleh karena itu, Anda harus benar-benar memperlakukan semuanya kecuali konstanta (seperti 'foobar'
) sebagai masukan pengguna .
Dalam kode yang Anda posting, mysql_real_escape_string
digunakan untuk mengkodekan (=melarikan diri) input pengguna. Oleh karena itu, kode tersebut benar, yaitu tidak mengizinkan serangan injeksi SQL apa pun.
Perhatikan bahwa sangat mudah untuk melupakan panggilan ke mysql_real_escape_string
- dan satu kali sudah cukup untuk penyerang yang terampil! Oleh karena itu, Anda mungkin ingin menggunakan PDO
modern dengan pernyataan yang disiapkan
alih-alih adodb.